|
1 | 1 | # KEP-4944: Kustomize Wasm Plugin
|
2 | 2 |
|
3 | 3 | <!-- toc -->
|
| 4 | + |
4 | 5 | - [Release Signoff Checklist](#release-signoff-checklist)
|
5 | 6 | - [Summary](#summary)
|
6 | 7 | - [Motivation](#motivation)
|
7 |
| - - [Limitation current plugins](#limitation-current-plugins) |
| 8 | + - [Limitation current plugins](#limitation-current-plugins) |
8 | 9 | - [Goals](#goals)
|
9 | 10 | - [Non-Goals](#non-goals)
|
10 | 11 | - [Proposal](#proposal)
|
11 |
| - - [Benefits of Wasm Plugin Support](#benefits-of-wasm-plugin-support) |
12 |
| - - [Platform Independence](#platform-independence) |
13 |
| - - [Simplified Distribution](#simplified-distribution) |
14 |
| - - [Familiar Interface](#familiar-interface) |
15 |
| - - [Enhanced Security](#enhanced-security) |
| 12 | + - [Benefits of Wasm Plugin Support](#benefits-of-wasm-plugin-support) |
| 13 | + - [Platform Independence](#platform-independence) |
| 14 | + - [Simplified Distribution](#simplified-distribution) |
| 15 | + - [Familiar Interface](#familiar-interface) |
| 16 | + - [Enhanced Security](#enhanced-security) |
16 | 17 | - [User Stories (Optional)](#user-stories-optional)
|
17 | 18 | - [Story 1](#story-1)
|
18 | 19 | - [Story 2](#story-2)
|
|
21 | 22 | - [Risks and Mitigations](#risks-and-mitigations)
|
22 | 23 | - [Design Details](#design-details)
|
23 | 24 | - [Test Plan](#test-plan)
|
24 |
| - - [Prerequisite testing updates](#prerequisite-testing-updates) |
25 |
| - - [Unit tests](#unit-tests) |
26 |
| - - [Integration tests](#integration-tests) |
27 |
| - - [e2e tests](#e2e-tests) |
| 25 | + - [Prerequisite testing updates](#prerequisite-testing-updates) |
| 26 | + - [Unit tests](#unit-tests) |
| 27 | + - [Integration tests](#integration-tests) |
| 28 | + - [e2e tests](#e2e-tests) |
28 | 29 | - [Graduation Criteria](#graduation-criteria)
|
29 | 30 | - [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy)
|
30 | 31 | - [Version Skew Strategy](#version-skew-strategy)
|
|
39 | 40 | - [Drawbacks](#drawbacks)
|
40 | 41 | - [Alternatives](#alternatives)
|
41 | 42 | - [Infrastructure Needed (Optional)](#infrastructure-needed-optional)
|
| 43 | + |
42 | 44 | <!-- /toc -->
|
43 | 45 |
|
44 | 46 | ## Release Signoff Checklist
|
@@ -296,7 +298,44 @@ required) or even code snippets. If there's any ambiguity about HOW your
|
296 | 298 | proposal will be implemented, this is the place to discuss them.
|
297 | 299 | -->
|
298 | 300 |
|
299 |
| -TODO(koba1t): |
| 301 | +Implement with [wazero](https://github.com/tetratelabs/wazero) to WASM runtime |
| 302 | +like the |
| 303 | +[kube-scheduler-wasm-extension](https://github.com/kubernetes-sigs/kube-scheduler-wasm-extension) |
| 304 | +project. |
| 305 | + |
| 306 | +### Interface |
| 307 | + |
| 308 | +Using the WASI to plugin interface. |
| 309 | + |
| 310 | +##### with Wasm binary file |
| 311 | + |
| 312 | +```yaml |
| 313 | +apiVersion: transformers.example.co/v1 |
| 314 | +kind: App |
| 315 | +metadata: |
| 316 | + name: example-app |
| 317 | + annotations: |
| 318 | + config.kubernetes.io/function: | |
| 319 | + wasip1: |
| 320 | + file: ../bin/fnapp.wasm |
| 321 | +spec: |
| 322 | + port: 8080 |
| 323 | +``` |
| 324 | +
|
| 325 | +##### with OCI registry |
| 326 | +
|
| 327 | +```yaml |
| 328 | +apiVersion: transformers.example.co/v1 |
| 329 | +kind: App |
| 330 | +metadata: |
| 331 | + name: example-app |
| 332 | + annotations: |
| 333 | + config.kubernetes.io/function: | |
| 334 | + wasip1: |
| 335 | + image: ghcr.io/koba1t/krm-fn-app:v0.0.3-wasm |
| 336 | +spec: |
| 337 | + port: 8080 |
| 338 | +``` |
300 | 339 |
|
301 | 340 | ### Test Plan
|
302 | 341 |
|
|
0 commit comments