interface "wasi:kv/data/readwrite" {
use { Error, payload, key } from "wasi:kv/types"
// Get retrieves the value associated with the given key. It returns an Error if the key does not exist.
get: func(key: key) -> result<payload, Error>
// set creates a new key-value pair or updates an existing key-value pair.
set: func(key: key, value: stream<u8>) -> result<_, Error>
// delete a key-value pair. If the key does not exist, it returns an Ok() result.
delete: func(key: key) -> result<_, Error>
// check if the key exists.
exists: func(key: key) -> result<bool, Error>
}
interface "wasi:kv/data/readwrite" {
use { Error, payload, key } from "wasi:kv/types"
// Open retrieves the kv-handle
open: func(connection-string: string) -> result<kv-handle, Error>
// Get retrieves the value associated with the given key. It returns an Error if the key does not exist.
get: func(handle: kv-handle, key: key) -> result<payload, Error>
// set creates a new key-value pair or updates an existing key-value pair.
set: func(handle: kv-handle, key: key, value: stream<u8>) -> result<_, Error>
// delete a key-value pair. If the key does not exist, it returns an Ok() result.
delete: func(handle: kv-handle, key: key) -> result<_, Error>
// check if the key exists.
exists: func(handle: kv-handle, key: key) -> result<bool, Error>
}
interface "wasi:kv/data/readwrite" {
use { Error, payload, key } from "wasi:kv/types"
// Get retrieves the value associated with the given key. It returns an Error if the key does not exist.
get: func(handle: string, key: key) -> result<payload, Error>
// set creates a new key-value pair or updates an existing key-value pair.
set: func(handle: string, key: key, value: stream<u8>) -> result<_, Error>
// delete a key-value pair. If the key does not exist, it returns an Ok() result.
delete: func(handle: string, key: key) -> result<_, Error>
// check if the key exists.
exists: func(handle: string, key: key) -> result<bool, Error>
}
// pseudo-handles:
conn = kv::open("foo")
val = kv::get(conn, "k")
// labels
val = kv::get("foo", "k")
// future star imports
kv::foo::get("k")
If you and Kate want to create a doc somewhere that we can refer to as the working doc for building the "Get Your SIG Started" checklist I can help contribute to it.
Mar 1, 2024SIG registries proposal for reference
Sep 11, 2023What to name the package? The spin software validation tool has claimed the spin package name in many OS package managers (brew , apt , chocolatey at minimum). Some alternative naming options: fermyon-spin spin-up Which installers Package Manager
Feb 7, 2023Krustlet is a open source project that enables WebAssembly workloads to run natively on Kubernetes. It does this by implementing the kubelet API, scheduling WASM modules instead of Pods upon requests from the Kubernetes scheduler. Kubernetes' Device Plugin framework enables Kubernetes workloads to request extended resources, such as hardware, advertised by Device Plugins. While krustlet currently supports CSI plugins, it does not support Device Plugins. This documentation goes through the work needed to be done to enable device plugin support. Investigation Upon startup, the Kubernetes kubelet registers two Plugin Handlers, one for CSI plugins and the other for for device plugins. Krustlet has currently implemented the equivalent of the CSI Plugin Handler as a PluginRegistry in its plugin_watcher module. The PluginRegistry implements both the plugin registration API -- which despite its agnostic name, is not for Device Plugins -- and PluginHandler interface. Kubernetes' kubelet has one pluginManager to which the CSI and DP PluginHandlers register. The pluginManager.reconciler makes sure that all plugins are in the correct (registered or deregistered) state. For example, it checks to see if a socket no longer exists for a plugin that is in the registered plugin list of thepluginManager.reconciler.actualStateOfWorld. If so, it will unregister the plugin by calling the associated PluginHandler's deregisterPlugin function. Therefore, plugin management in Kubernetes consists of the following:
Jul 8, 2022or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up