This page contains more general advice on ways you can contribute to SpinKube, and how to approach that. If you are looking for a reference on the details of making code contributions, see the Writing code documentation. First steps Start with these steps to be successful as a contributor to SpinKube. Join the conversation It can be argued that collaboration and communication are the most crucial aspects of open source development. Gaining consensus on the direction of the project, and that y...| SpinKube
Project Overview SpinKube is a new open source project that streamlines the experience of developing, deploying, and operating Wasm workloads on Kubernetes, using Spin in tandem with the runwasi and runtime class manager (formerly KWasm) open source projects. With SpinKube, you can leverage the advantages of using WebAssembly (Wasm) for your workloads: Artifacts are significantly smaller in size compared to container images. Artifacts can be quickly fetched over the network and started much f...| SpinKube
Resource Types: SpinApp SpinApp SpinApp is the Schema for the spinapps API NameTypeDescriptionRequired apiVersionstringcore.spinkube.dev/v1alpha1true kindstringSpinApptrue metadataobjectRefer to the Kubernetes API documentation for the fields of the `metadata` field.true specobject SpinAppSpec defines the desired state of SpinApp false statusobject SpinAppStatus defines the observed state of SpinApp false SpinApp.spec back to parent| SpinKube
| www.spinkube.dev
Resource Types: SpinAppExecutor SpinAppExecutor SpinAppExecutor is the Schema for the spinappexecutors API NameTypeDescriptionRequired apiVersionstringcore.spinkube.dev/v1alpha1true kindstringSpinAppExecutortrue metadataobjectRefer to the Kubernetes API documentation for the fields of the `metadata` field.true specobject SpinAppExecutorSpec defines the desired state of SpinAppExecutor false statusobject SpinAppExecutorStatus defines the observed state of SpinAppExecutor false SpinAppExecutor....| SpinKube
This article explains how to selectively deploy a subset of components from your Spin App using Selective Deployments. You will learn how to: Scaffold a Specific Component from a Spin Application into a Custom Resource Run a Selective Deployment Selective Deployments allow you to control which components within a Spin app are active for a specific instance of the app. With Component Selectors, Spin and SpinKube can declare at runtime which components should be activated, letting you deploy a ...| SpinKube
| www.spinkube.dev
Interested in giving back to the community a little? Maybe you’ve found a bug in SpinKube that you’d like to see fixed, or maybe there’s a small feature you want added. Contributing back to SpinKube itself is the best way to see your own concerns addressed. This may seem daunting at first, but it’s a well-traveled path with documentation, tooling, and a community to support you. We’ll walk you through the entire process, so you can learn by example.| SpinKube
To enable HTTPS requests, the executor must be configured to use certificates. SpinKube can be configured to use either default or custom certificates. If you make a request without properly configured certificates, you’ll encounter an error message that reads: error trying to connect: unexpected EOF (unable to get local issuer certificate). Using default certificates SpinKube can generate a default CA certificate bundle by setting installDefaultCACerts to true. This creates a secret named ...| SpinKube
By using variables, you can alter application behavior without recompiling your SpinApp. When running in Kubernetes, you can either provide constant values for variables, or reference them from Kubernetes primitives such as ConfigMaps and Secrets. This tutorial guides your through the process of assigning variables to your SpinApp. Note: If you’d like to learn how to configure your application with an external variable provider like Vault or Azure Key Vault, see the External Variable Provid...| SpinKube
We place high importance on the consistency and readability of documentation. We treat our documentation like we treat our code: we aim to improve it as often as possible. Documentation changes generally come in two forms: General improvements: typo corrections, error fixes and better explanations through clearer writing and more examples. New features: documentation of features that have been added to the project since the last release. This section explains how writers can craft their docum...| SpinKube
In the Assigning Variables guide, you learned how to configure variables on the SpinApp via its variables section, either by supplying values in-line or via a Kubernetes ConfigMap or Secret. You can also utilize an external service like Vault or Azure Key Vault to provide variable values for your application. This guide will show you how to use and configure both services in tandem with corresponding sample applications. Prerequisites To follow along with this tutorial, you’ll need:| SpinKube
This topic guide shows you how to connect to your application deployed to SpinKube, including how to use port-forwarding for local development, or Ingress rules for a production setup. Run the sample application Let’s deploy a sample application to your Kubernetes cluster. We will use this application throughout the tutorial to demonstrate how to connect to it. Refer to the quickstart guide if you haven’t set up a Kubernetes cluster yet.| SpinKube
This topic guide shows you how to configure SpinKube so your Spin apps export observability data. This data will export to an OpenTelemetry collector which will send it to Jaeger. Prerequisites Please ensure you have the following tools installed before continuing: A Kubernetes cluster running SpinKube. See the installation guides for more information The kubectl CLI The Helm CLI About OpenTelemetry Collector From the OpenTelemetry documentation: The OpenTelemetry Collector offers a vendor-ag...| SpinKube
The following is a list of common error messages and potential troubleshooting suggestions that might assist you with your work. SpinKube Support Policy SpinKube provides support on a best-effort basis. For users who installed SpinKube manually following the documentation, please report issues in the Spin Operator repository. For installations via the Azure Marketplace, please open an issue in the Azure repository for assistance. If your issue is urgent, feel free to raise it in Slack.| SpinKube
Spin applications can utilize a standardized API for persisting data in a key value store. The default key value store in Spin is an SQLite database, which is great for quickly utilizing non-relational local storage without any infrastructure set-up. However, this solution may not be preferable for an app running in the context of SpinKube, where apps are often scaled beyond just one replica. Thankfully, Spin supports configuring an application with an external key value provider. External pr...| SpinKube
Spin applications can utilize a standardized API for persisting data in a SQLite database. A default database is created by the Spin runtime on the local filesystem, which is great for getting an application up and running. However, this on-disk solution may not be preferable for an app running in the context of SpinKube, where apps are often scaled beyond just one replica. Thankfully, Spin supports configuring an application with an external SQLite database provider via runtime configuration...| SpinKube
spin-operator Spin Operator is a Kubernetes operator which empowers platform engineers to deploy Spin applications as custom resources to their Kubernetes clusters. Spin Operator provides an elegant solution for platform engineers looking to improve efficiency without compromising on performance while maintaining workload portability. Why Spin Operator? By bringing the power of the Spin framework to Kubernetes clusters, Spin Operator provides application developers and platform engineers with...| SpinKube
The following glossary of terms is in the context of deploying, scaling, automating and managing Spin applications in containerized environments. Chart A Helm chart is a package format used in Kubernetes for deploying applications. It contains all the necessary files, configurations, and dependencies required to deploy and manage an application on a Kubernetes cluster. Helm charts provide a convenient way to define, install, and upgrade complex applications in a consistent and reproducible ma...| SpinKube
Since we publicly released SpinKube in March we’ve been hard at work steadily making it better. Spin Operator v0.4.0, Containerd shim for Spin v0.17.0, and spin kube plugin v0.3.0 have all just been released. To celebrate that, here’s five new things in SpinKube you should know about. Selective Deployments SpinKube now supports selectively deploying a subset of a Spin apps components. Consider this simple example Spin application (named salutation in the example repo) composed of two HTTP...| SpinKube
containerd-shim-spin Executor The Spin containerd shim project is a containerd shim implementation for Spin. Spin Operator and Shim Feature Map If a feature is configured in a SpinApp that is not supported in the version of the shim being used, the application may not execute as expected. The following maps out the versions of the Spin containerd shim, Spin Operator, and spin kube plugin that have support for specific features.| SpinKube
This guide walks through the process of installing and configuring SpinKube on Linode Kubernetes Engine (LKE). Prerequisites This guide assumes that you have an Akamai Linode account that is configured and has sufficient permissions for creating a new LKE cluster. You will also need recent versions of kubectl and helm installed on your system. Creating an LKE Cluster LKE has a managed control plane, so you only need to create the pool of worker nodes. In this tutorial, we will create a 2-node...| SpinKube
This guide walks through the process of installing and configuring Microk8s and SpinKube. Prerequisites This guide assumes you are running Ubuntu 24.04, and that you have Snap enabled (which is the default). The testing platform for this installation was an Akamai Edge Linode running 4G of memory and 2 cores. Installing Spin You will need to install Spin. The easiest way is to just use the following one-liner to get the latest version of Spin:| SpinKube
The goal of this guide is show a way to bring SpinKube to KinD without the need of a custom image, like the SpinKube on k3d example. Instead, the Rancher Desktop (RD) Spin plugin will be used alongside KinD cluster configuration. Finally, this guide will have three major sections covering the following: KinD configurations: contains the different configurations, depending on your OS RD on WSL: targets only Windows users RD on LIMA: targets both Linux and MacOS users Prerequisites In order to ...| SpinKube
Today we’re introducing SpinKube - an open source platform for efficiently running Spin-based WebAssembly (Wasm) applications on Kubernetes. Built with love by folks from Microsoft, SUSE, LiquidReply, and Fermyon. SpinKube combines the application lifecycle management of the Spin Operator, the efficiency of the containerd-shim-spin, and the node lifecycle management of the forthcoming runtime-class-manager (formerly KWasm) to provide an excellent developer and operator experience alongside ...| SpinKube
Horizontal autoscaling support In Kubernetes, a horizontal autoscaler automatically updates a workload resource (such as a Deployment or StatefulSet) with the aim of automatically scaling the workload to match demand. Horizontal scaling means that the response to increased load is to deploy more resources. This is different from vertical scaling, which for Kubernetes would mean assigning more memory or CPU to the resources that are already running for the workload.| SpinKube
In this tutorial, you install Spin Operator on an Azure Kubernetes Service (AKS) cluster and deploy a simple Spin application. You will learn how to: Deploy an AKS cluster Install Spin Operator Custom Resource Definition and Runtime Class Install and verify containerd shim via Kwasm Deploy a simple Spin App custom resource on your cluster Prerequisites Please ensure you have the following tools installed before continuing:| SpinKube
Rancher Desktop is an open-source application that provides all the essentials to work with containers and Kubernetes on your desktop. Prerequisites An operating system compatible with Rancher Desktop (Windows, macOS, or Linux). Administrative or superuser access on your computer. Step 1: Installing Rancher Desktop Download Rancher Desktop: Navigate to the Rancher Desktop releases page. Select the appropriate installer for your operating system for version 1.14.0. Install Rancher Desktop: Run...| SpinKube
Prerequisites For this guide in particular, you will need: kubectl - the Kubernetes CLI Helm - the package manager for Kubernetes Install Spin Operator With Helm The following instructions are for installing Spin Operator using a Helm chart (using helm install). Prepare the Cluster Before installing the chart, you’ll need to ensure the following are installed: cert-manager to automatically provision and manage TLS certificates (used by spin-operator’s admission webhook system). For detail...| SpinKube
Horizontal scaling, in the Kubernetes sense, means deploying more pods to meet demand (different from vertical scaling whereby more memory and CPU resources are assigned to already running pods). In this tutorial, we configure HPA to dynamically scale the instance count of our SpinApps to meet the demand. Prerequisites Ensure you have the following tools installed: Docker - for running k3d kubectl - the Kubernetes CLI k3d - a lightweight Kubernetes distribution that runs on Docker Helm - the ...| SpinKube
KEDA extends Kubernetes to provide event-driven scaling capabilities, allowing it to react to events from Kubernetes internal and external sources using KEDA scalers. KEDA provides a wide variety of scalers to define scaling behavior base on sources like CPU, Memory, Azure Event Hubs, Kafka, RabbitMQ, and more. We use a ScaledObject to dynamically scale the instance count of our SpinApp to meet the demand. Prerequisites Please ensure the following tools are installed on your local machine:| SpinKube
See the following list of compatible Kubernetes distributions and platforms for running the Spin Operator: Amazon Elastic Kubernetes Service (EKS) Azure Kubernetes Service (AKS) Civo Kubernetes Digital Ocean Kubernetes (DOKS) Google Kubernetes Engine (GKE) k3d minikube (explicitly pass --container-runtime=containerd and ensure you’re on minikube version >= 1.33) Scaleway Kubernetes Kapsule Disclaimer: Please note that this is a working list of compatible Kubernetes distributions and platfor...| SpinKube
The kube plugin for spin (The Spin CLI) provides first class experience for working with Spin apps in the context of Kubernetes. Prerequisites Ensure you have the Spin CLI (version 2.3.1 or newer) installed on your machine. Install the plugin Before you install the plugin, you should fetch the list of latest Spin plugins from the spin-plugins repository: # Update the list of latest Spin pluginsspin plugins update Plugin information updated successfully Go ahead and install the kube using spin...| SpinKube
SpinKube Integrations KEDA Kubernetes Event-Driven Autoscaling (KEDA) provides event-driven autoscaling for Kubernetes workloads. It allows Kubernetes to automatically scale applications in response to external events such as messages in a queue, enabling more efficient resource utilization and responsive scaling based on actual demand, rather than static metrics. KEDA serves as a bridge between Kubernetes and various event sources, making it easier to scale applications dynamically in a clou...| SpinKube
| SpinKube
Welcome to SpinKube SpinKube Documentation A new open source project that streamlines the experience of developing, deploying, and operating Wasm workloads on Kubernetes. SpinKube comprises the following open source projects.| SpinKube
The Spintainer Executor The Spintainer (a play on the words Spin and container) executor is a SpinAppExecutor that runs Spin applications directly in a container rather than via the shim. This is useful for a number of reasons: Provides the flexibility to: Use any Spin version you want. Use any custom triggers or plugins you want. Allows you to use SpinKube even if you don’t have the cluster permissions to install the shim. Note: We recommend using the shim for most use cases. The spintaine...| SpinKube
Instructions on how to navigate the breaking changes v0.4.0 introduces.| SpinKube
Spin Plugin kube CLI Reference.| SpinKube