diff --git a/Makefile b/Makefile index addd0c59..cb65b3de 100644 --- a/Makefile +++ b/Makefile @@ -2,17 +2,11 @@ gofumpt := mvdan.cc/gofumpt@v0.5.0 gosimports := github.com/rinchsan/gosimports/cmd/gosimports@v0.3.8 golangci_lint := github.com/golangci/golangci-lint/cmd/golangci-lint@v1.61.0 -examples/advanced/main.wasm: examples/advanced/main.go - @(cd $(@D); tinygo build -o main.wasm -gc=custom -tags=custommalloc -scheduler=none --no-debug -target=wasi .) - -internal/e2e/scheduler_perf/wasm/nodenumber/main.wasm: internal/e2e/scheduler_perf/wasm/nodenumber/main.go - @(cd $(@D); tinygo build -o main.wasm -gc=custom -tags=custommalloc -scheduler=none --no-debug -target=wasi .) - %/main.wasm: %/main.go - @(cd $(@D); tinygo build -o main.wasm -scheduler=none --no-debug -target=wasi .) + @(cd $(@D); GOARCH=wasm GOOS=wasip1 gotip build -buildmode=c-shared -tags wasm -o main.wasm .) -.PHONY: build-tinygo -build-tinygo: examples/nodenumber/main.wasm examples/advanced/main.wasm examples/imagelocality/main.wasm guest/testdata/cyclestate/main.wasm guest/testdata/filter/main.wasm guest/testdata/score/main.wasm \ +.PHONY: build-wasm +build-wasm: examples/nodenumber/main.wasm examples/advanced/main.wasm examples/imagelocality/main.wasm guest/testdata/cyclestate/main.wasm guest/testdata/filter/main.wasm guest/testdata/score/main.wasm \ guest/testdata/bind/main.wasm guest/testdata/reserve/main.wasm guest/testdata/handle/main.wasm guest/testdata/permit/main.wasm \ internal/e2e/scheduler_perf/wasm/nodenumber/main.wasm @@ -46,7 +40,7 @@ build-wat: $(wildcard scheduler/test/testdata/*/*.wat) done .PHONY: testdata -testdata: build-tinygo build-wat +testdata: build-wasm build-wat .PHONY: profile profile: examples/advanced/main-debug.wasm diff --git a/examples/advanced/go.mod b/examples/advanced/go.mod index 8a7a3a3f..bf1afa7d 100644 --- a/examples/advanced/go.mod +++ b/examples/advanced/go.mod @@ -3,15 +3,11 @@ module sigs.k8s.io/kube-scheduler-wasm-extension/examples/advanced go 1.22.0 require ( - github.com/wasilibs/nottinygc v0.4.0 sigs.k8s.io/kube-scheduler-wasm-extension/guest v0.0.0-00010101000000-000000000000 sigs.k8s.io/kube-scheduler-wasm-extension/kubernetes/proto v0.0.0-00010101000000-000000000000 ) -require ( - github.com/magefile/mage v1.14.0 // indirect - google.golang.org/protobuf v1.30.0 // indirect -) +require google.golang.org/protobuf v1.30.0 // indirect replace sigs.k8s.io/kube-scheduler-wasm-extension/guest => ./../../guest diff --git a/examples/advanced/go.sum b/examples/advanced/go.sum index 09843cbf..f0e0891f 100644 --- a/examples/advanced/go.sum +++ b/examples/advanced/go.sum @@ -1,11 +1,6 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/magefile/mage v1.14.0 h1:6QDX3g6z1YvJ4olPhT1wksUcSa/V0a1B+pJb73fBjyo= -github.com/magefile/mage v1.14.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= -github.com/wasilibs/nottinygc v0.4.0 h1:h1TJMihMC4neN6Zq+WKpLxgd9xCFMw7O9ETLwY2exJQ= -github.com/wasilibs/nottinygc v0.4.0/go.mod h1:oDcIotskuYNMpqMF23l7Z8uzD4TC0WXHK8jetlB3HIo= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= diff --git a/examples/advanced/main.go b/examples/advanced/main.go index 16187667..cde276b8 100644 --- a/examples/advanced/main.go +++ b/examples/advanced/main.go @@ -1,5 +1,3 @@ -//go:build tinygo.wasm - /* Copyright 2023 The Kubernetes Authors. @@ -20,11 +18,7 @@ // 'tinygo build -target=wasi'. See /guest/RATIONALE.md for details. package main -// Override the default GC with a more performant one. -// Note: this requires tinygo flags: -gc=custom -tags=custommalloc import ( - _ "github.com/wasilibs/nottinygc" - "sigs.k8s.io/kube-scheduler-wasm-extension/examples/advanced/plugin" "sigs.k8s.io/kube-scheduler-wasm-extension/guest/config" "sigs.k8s.io/kube-scheduler-wasm-extension/guest/enqueue" @@ -36,7 +30,7 @@ import ( // main is compiled to an exported Wasm function named "_start", called by the // Wasm scheduler plugin during initialization. -func main() { +func init() { // The plugin package uses only normal Go code, which allows it to be // unit testable via `tinygo test -target=wasi` as well normal `go test`. // @@ -53,3 +47,5 @@ func main() { prescore.SetPlugin(plugin) score.SetPlugin(plugin) } + +func main() {} diff --git a/examples/advanced/main.wasm b/examples/advanced/main.wasm old mode 100755 new mode 100644 index ee9fa404..8224edd0 Binary files a/examples/advanced/main.wasm and b/examples/advanced/main.wasm differ diff --git a/examples/imagelocality/main.go b/examples/imagelocality/main.go index 8378b7b6..8b55830e 100644 --- a/examples/imagelocality/main.go +++ b/examples/imagelocality/main.go @@ -23,7 +23,8 @@ import ( // main is compiled to an exported Wasm function named "_start", called by the // Wasm scheduler plugin during initialization. -func main() { +func main() {} +func init() { // The plugin package uses only normal Go code, which allows it to be // unit testable via `tinygo test -target=wasi` as well normal `go test`. // diff --git a/examples/imagelocality/main.wasm b/examples/imagelocality/main.wasm old mode 100755 new mode 100644 index 219e4e4c..a2850eea Binary files a/examples/imagelocality/main.wasm and b/examples/imagelocality/main.wasm differ diff --git a/examples/nodenumber/main.go b/examples/nodenumber/main.go index e261632d..c1c11b74 100644 --- a/examples/nodenumber/main.go +++ b/examples/nodenumber/main.go @@ -33,7 +33,7 @@ import ( // main is compiled to a WebAssembly function named "_start", called by the // wasm scheduler plugin during initialization. -func main() { +func init() { p, err := New(klog.Get(), config.Get()) if err != nil { panic(err) @@ -41,6 +41,8 @@ func main() { plugin.Set(p) } +func main() {} + func New(klog klogapi.Klog, jsonConfig []byte) (api.Plugin, error) { var args nodeNumberArgs if jsonConfig != nil { diff --git a/examples/nodenumber/main.wasm b/examples/nodenumber/main.wasm old mode 100755 new mode 100644 index f9bc509d..48d855ad Binary files a/examples/nodenumber/main.wasm and b/examples/nodenumber/main.wasm differ diff --git a/guest/bind/bind.go b/guest/bind/bind.go index a3b5f152..282f5108 100644 --- a/guest/bind/bind.go +++ b/guest/bind/bind.go @@ -52,7 +52,7 @@ var _ func() uint32 = _bind // _bind is only exported to the host. // -//export bind +//go:wasmexport bind func _bind() uint32 { //nolint if bind == nil { // Then, the user didn't define one. // This is likely caused by use of plugin.Set(p), where 'p' didn't diff --git a/guest/config/imports.go b/guest/config/imports.go index 73ec76c9..9f5d5d84 100644 --- a/guest/config/imports.go +++ b/guest/config/imports.go @@ -1,4 +1,4 @@ -//go:build tinygo.wasm +//go:build wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/config/imports_stub.go b/guest/config/imports_stub.go index 0af9e887..22f92bdd 100644 --- a/guest/config/imports_stub.go +++ b/guest/config/imports_stub.go @@ -1,4 +1,4 @@ -//go:build !tinygo.wasm +//go:build !wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/enqueue/enqueue.go b/guest/enqueue/enqueue.go index 646caf62..8f2c502a 100644 --- a/guest/enqueue/enqueue.go +++ b/guest/enqueue/enqueue.go @@ -43,7 +43,7 @@ var _ func() = _enqueue // enqueue is only exported to the host. // -//export enqueue +//go:wasmexport enqueue func _enqueue() { if enqueue == nil { // Then, the user didn't define one. // This is likely caused by use of plugin.Set(p), where 'p' didn't diff --git a/guest/enqueue/imports.go b/guest/enqueue/imports.go index 1c7343bd..8fc556fc 100644 --- a/guest/enqueue/imports.go +++ b/guest/enqueue/imports.go @@ -1,4 +1,4 @@ -//go:build tinygo.wasm +//go:build wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/enqueue/imports_stub.go b/guest/enqueue/imports_stub.go index 2f70aa4a..4d71c2dc 100644 --- a/guest/enqueue/imports_stub.go +++ b/guest/enqueue/imports_stub.go @@ -1,4 +1,4 @@ -//go:build !tinygo.wasm +//go:build !wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/filter/filter.go b/guest/filter/filter.go index 4fb6dbaa..6ff86184 100644 --- a/guest/filter/filter.go +++ b/guest/filter/filter.go @@ -57,7 +57,7 @@ var _ func() uint32 = _filter // filter is only exported to the host. // -//export filter +//go:wasmexport filter func _filter() uint32 { //nolint if filter == nil { // Then, the user didn't define one. // This is likely caused by use of plugin.Set(p), where 'p' didn't diff --git a/guest/handle/eventrecorder/imports.go b/guest/handle/eventrecorder/imports.go index d2cb2f15..d50abb60 100644 --- a/guest/handle/eventrecorder/imports.go +++ b/guest/handle/eventrecorder/imports.go @@ -1,4 +1,4 @@ -//go:build tinygo.wasm +//go:build wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/handle/eventrecorder/imports_stub.go b/guest/handle/eventrecorder/imports_stub.go index 182533c0..20e388c8 100644 --- a/guest/handle/eventrecorder/imports_stub.go +++ b/guest/handle/eventrecorder/imports_stub.go @@ -1,4 +1,4 @@ -//go:build !tinygo.wasm +//go:build !wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/handle/imports.go b/guest/handle/imports.go index 1cbc148d..9050b676 100644 --- a/guest/handle/imports.go +++ b/guest/handle/imports.go @@ -1,4 +1,4 @@ -//go:build tinygo.wasm +//go:build wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/handle/imports_stub.go b/guest/handle/imports_stub.go index 786633bd..15e3a46c 100644 --- a/guest/handle/imports_stub.go +++ b/guest/handle/imports_stub.go @@ -1,4 +1,4 @@ -//go:build !tinygo.wasm +//go:build !wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/internal/imports/imports.go b/guest/internal/imports/imports.go index 473cb175..a7ea7504 100644 --- a/guest/internal/imports/imports.go +++ b/guest/internal/imports/imports.go @@ -1,4 +1,4 @@ -//go:build tinygo.wasm +//go:build wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/internal/imports/imports_stub.go b/guest/internal/imports/imports_stub.go index 7ce1446d..c03b7b28 100644 --- a/guest/internal/imports/imports_stub.go +++ b/guest/internal/imports/imports_stub.go @@ -1,4 +1,4 @@ -//go:build !tinygo.wasm +//go:build !wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/internal/prefilter/imports.go b/guest/internal/prefilter/imports.go index 1844da12..2b8205e7 100644 --- a/guest/internal/prefilter/imports.go +++ b/guest/internal/prefilter/imports.go @@ -1,4 +1,4 @@ -//go:build tinygo.wasm +//go:build wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/internal/prefilter/imports_stub.go b/guest/internal/prefilter/imports_stub.go index b7a75fee..65415c71 100644 --- a/guest/internal/prefilter/imports_stub.go +++ b/guest/internal/prefilter/imports_stub.go @@ -1,4 +1,4 @@ -//go:build !tinygo.wasm +//go:build !wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/internal/prefilter/prefilter_exports.go b/guest/internal/prefilter/prefilter_exports.go index a199cc9d..01e86c75 100644 --- a/guest/internal/prefilter/prefilter_exports.go +++ b/guest/internal/prefilter/prefilter_exports.go @@ -44,7 +44,7 @@ var _ func() uint32 = _prefilter // _prefilter is only exported to the host. // -//export prefilter +//go:wasmexport prefilter func _prefilter() uint32 { //nolint // This function begins a new scheduling cycle: zero out any cycle state. currentPod = nil diff --git a/guest/klog/imports.go b/guest/klog/imports.go index 4a452f5c..e7bafa03 100644 --- a/guest/klog/imports.go +++ b/guest/klog/imports.go @@ -1,4 +1,4 @@ -//go:build tinygo.wasm +//go:build wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/klog/imports_stub.go b/guest/klog/imports_stub.go index bf5baedd..fdd31de9 100644 --- a/guest/klog/imports_stub.go +++ b/guest/klog/imports_stub.go @@ -1,4 +1,4 @@ -//go:build !tinygo.wasm +//go:build !wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/klog/klog_test.go b/guest/klog/klog_test.go index 898f2707..37d1bb76 100644 --- a/guest/klog/klog_test.go +++ b/guest/klog/klog_test.go @@ -1,4 +1,4 @@ -//go:build !tinygo.wasm +//go:build !wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/postbind/postbind.go b/guest/postbind/postbind.go index bfab9fc0..4c2b4410 100644 --- a/guest/postbind/postbind.go +++ b/guest/postbind/postbind.go @@ -57,7 +57,7 @@ var _ func() = _postbind // _postbind is only exported to the host. // -//export postbind +//go:wasmexport postbind func _postbind() { //nolint if postbind == nil { // Then, the user didn't define one. // This is likely caused by use of plugin.Set(p), where 'p' didn't diff --git a/guest/postfilter/imports.go b/guest/postfilter/imports.go index 7fa755d1..21cca030 100644 --- a/guest/postfilter/imports.go +++ b/guest/postfilter/imports.go @@ -1,4 +1,4 @@ -//go:build tinygo.wasm +//go:build wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/postfilter/imports_stub.go b/guest/postfilter/imports_stub.go index 83e49d80..ad59d1c1 100644 --- a/guest/postfilter/imports_stub.go +++ b/guest/postfilter/imports_stub.go @@ -1,4 +1,4 @@ -//go:build !tinygo.wasm +//go:build !wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/postfilter/postfilter.go b/guest/postfilter/postfilter.go index 94e85eac..7af937ea 100644 --- a/guest/postfilter/postfilter.go +++ b/guest/postfilter/postfilter.go @@ -65,7 +65,7 @@ var _ func() uint64 = _postfilter // _postfilter is only exported to the host. // -//export postfilter +//go:wasmexport postfilter func _postfilter() uint64 { //nolint if postfilter == nil { // Then, the user didn't define one. diff --git a/guest/prebind/prebind.go b/guest/prebind/prebind.go index 53ce90d7..26b8c230 100644 --- a/guest/prebind/prebind.go +++ b/guest/prebind/prebind.go @@ -57,7 +57,7 @@ var _ func() uint32 = _prebind // _prebind is only exported to the host. // -//export prebind +//go:wasmexport prebind func _prebind() uint32 { //nolint if prebind == nil { // Then, the user didn't define one. // This is likely caused by use of plugin.Set(p), where 'p' didn't diff --git a/guest/prescore/imports.go b/guest/prescore/imports.go index 4584b460..c2f42091 100644 --- a/guest/prescore/imports.go +++ b/guest/prescore/imports.go @@ -1,4 +1,4 @@ -//go:build tinygo.wasm +//go:build wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/prescore/imports_stub.go b/guest/prescore/imports_stub.go index 6be0287f..93ee3871 100644 --- a/guest/prescore/imports_stub.go +++ b/guest/prescore/imports_stub.go @@ -1,4 +1,4 @@ -//go:build !tinygo.wasm +//go:build !wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/prescore/prescore.go b/guest/prescore/prescore.go index c51ea4c5..440ff620 100644 --- a/guest/prescore/prescore.go +++ b/guest/prescore/prescore.go @@ -70,7 +70,7 @@ var _ func() uint32 = _prescore // prescore is only exported to the host. // -//export prescore +//go:wasmexport prescore func _prescore() uint32 { if prescore == nil { // Then, the user didn't define one. // This is likely caused by use of plugin.Set(p), where 'p' didn't diff --git a/guest/reserve/reserve.go b/guest/reserve/reserve.go index 147769f1..ab09d4ad 100644 --- a/guest/reserve/reserve.go +++ b/guest/reserve/reserve.go @@ -61,7 +61,7 @@ var ( // _reserve is only exported to the host. // -//export reserve +//go:wasmexport reserve func _reserve() uint32 { //nolint if reserve == nil { // Then, the user didn't define one. // Unlike most plugins we always export reserve so that we can reset @@ -77,7 +77,7 @@ func _reserve() uint32 { //nolint // _unreserve is only exported to the host. // -//export unreserve +//go:wasmexport unreserve func _unreserve() { //nolint if reserve == nil { // Then, the user didn't define one. // Unlike most plugins we always export unreserve so that we can reset diff --git a/guest/score/score.go b/guest/score/score.go index 66ebda9b..37be75a3 100644 --- a/guest/score/score.go +++ b/guest/score/score.go @@ -61,7 +61,7 @@ var _ func() uint64 = _score // score is only exported to the host. // -//export score +//go:wasmexport score func _score() uint64 { if score == nil { // Then, the user didn't define one. // This is likely caused by use of plugin.Set(p), where 'p' didn't diff --git a/guest/scoreextensions/imports.go b/guest/scoreextensions/imports.go index 90279e4b..16c10f3f 100644 --- a/guest/scoreextensions/imports.go +++ b/guest/scoreextensions/imports.go @@ -1,4 +1,4 @@ -//go:build tinygo.wasm +//go:build wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/scoreextensions/imports_stub.go b/guest/scoreextensions/imports_stub.go index 107559bc..cf7bacaf 100644 --- a/guest/scoreextensions/imports_stub.go +++ b/guest/scoreextensions/imports_stub.go @@ -1,4 +1,4 @@ -//go:build !tinygo.wasm +//go:build !wasm /* Copyright 2023 The Kubernetes Authors. diff --git a/guest/scoreextensions/scoreextensions.go b/guest/scoreextensions/scoreextensions.go index 14574d72..157ada4f 100644 --- a/guest/scoreextensions/scoreextensions.go +++ b/guest/scoreextensions/scoreextensions.go @@ -59,7 +59,7 @@ var _ func() uint32 = _normalizescore // normalizescore is only exported to the host. // -//export normalizescore +//go:wasmexport normalizescore func _normalizescore() uint32 { if scoreextensions == nil { // Then, the user didn't define one. // This is likely caused by use of plugin.Set(p), where 'p' didn't diff --git a/guest/testdata/bind/main.go b/guest/testdata/bind/main.go index 96fd7463..23cdc88a 100644 --- a/guest/testdata/bind/main.go +++ b/guest/testdata/bind/main.go @@ -32,7 +32,8 @@ type extensionPoints interface { api.PostBindPlugin } -func main() { +func main() {} +func init() { // Multiple tests are here to reduce re-compilation time and size checked // into git. var plugin extensionPoints = noopPlugin{} diff --git a/guest/testdata/bind/main.wasm b/guest/testdata/bind/main.wasm old mode 100755 new mode 100644 index abed062f..efbe4901 Binary files a/guest/testdata/bind/main.wasm and b/guest/testdata/bind/main.wasm differ diff --git a/guest/testdata/cyclestate/main.go b/guest/testdata/cyclestate/main.go index 606afcb2..4089c681 100644 --- a/guest/testdata/cyclestate/main.go +++ b/guest/testdata/cyclestate/main.go @@ -40,7 +40,8 @@ import ( protoapi "sigs.k8s.io/kube-scheduler-wasm-extension/kubernetes/proto/api" ) -func main() { +func main() {} +func init() { // Multiple tests are here to reduce re-compilation time and size checked // into git. if len(os.Args) == 2 { diff --git a/guest/testdata/cyclestate/main.wasm b/guest/testdata/cyclestate/main.wasm old mode 100755 new mode 100644 index a298359d..72592583 Binary files a/guest/testdata/cyclestate/main.wasm and b/guest/testdata/cyclestate/main.wasm differ diff --git a/guest/testdata/filter/main.go b/guest/testdata/filter/main.go index b831ed45..4298bf7b 100644 --- a/guest/testdata/filter/main.go +++ b/guest/testdata/filter/main.go @@ -34,7 +34,8 @@ type extensionPoints interface { api.PreFilterExtensions } -func main() { +func main() {} +func init() { // Multiple tests are here to reduce re-compilation time and size checked // into git. var plugin extensionPoints = noopPlugin{} diff --git a/guest/testdata/filter/main.wasm b/guest/testdata/filter/main.wasm old mode 100755 new mode 100644 index 69662cf6..d7d14d1d Binary files a/guest/testdata/filter/main.wasm and b/guest/testdata/filter/main.wasm differ diff --git a/guest/testdata/handle/main.go b/guest/testdata/handle/main.go index ab0a415f..b3958058 100644 --- a/guest/testdata/handle/main.go +++ b/guest/testdata/handle/main.go @@ -32,7 +32,8 @@ type extensionPoints interface { } // This code is for checking the method of handle. -func main() { +func main() {} +func init() { // Multiple tests are here to reduce re-compilation time and size checked // into git. var plugin extensionPoints = noopPlugin{} diff --git a/guest/testdata/handle/main.wasm b/guest/testdata/handle/main.wasm old mode 100755 new mode 100644 index f19fb9a8..a08523a4 Binary files a/guest/testdata/handle/main.wasm and b/guest/testdata/handle/main.wasm differ diff --git a/guest/testdata/permit/main.go b/guest/testdata/permit/main.go index 67e59582..531de3fe 100644 --- a/guest/testdata/permit/main.go +++ b/guest/testdata/permit/main.go @@ -28,7 +28,8 @@ type extensionPoints interface { api.PermitPlugin } -func main() { +func main() {} +func init() { var plugin extensionPoints = permitPlugin{} permit.SetPlugin(plugin) } diff --git a/guest/testdata/permit/main.wasm b/guest/testdata/permit/main.wasm old mode 100755 new mode 100644 index 2e199ac9..a23db847 Binary files a/guest/testdata/permit/main.wasm and b/guest/testdata/permit/main.wasm differ diff --git a/guest/testdata/reserve/main.go b/guest/testdata/reserve/main.go index cef53c9b..fa5de179 100644 --- a/guest/testdata/reserve/main.go +++ b/guest/testdata/reserve/main.go @@ -26,7 +26,8 @@ type extensionPoints interface { api.ReservePlugin } -func main() { +func main() {} +func init() { var plugin extensionPoints = reservePlugin{} reserve.SetPlugin(plugin) } diff --git a/guest/testdata/reserve/main.wasm b/guest/testdata/reserve/main.wasm old mode 100755 new mode 100644 index e1fe567d..27ede015 Binary files a/guest/testdata/reserve/main.wasm and b/guest/testdata/reserve/main.wasm differ diff --git a/guest/testdata/score/main.go b/guest/testdata/score/main.go index d11a8cef..ff09613e 100644 --- a/guest/testdata/score/main.go +++ b/guest/testdata/score/main.go @@ -32,7 +32,8 @@ type extensionPoints interface { api.ScoreExtensions } -func main() { +func main() {} +func init() { // Multiple tests are here to reduce re-compilation time and size checked // into git. var plugin extensionPoints = noopPlugin{} diff --git a/guest/testdata/score/main.wasm b/guest/testdata/score/main.wasm old mode 100755 new mode 100644 index 6c6ae0b7..5a575169 Binary files a/guest/testdata/score/main.wasm and b/guest/testdata/score/main.wasm differ diff --git a/internal/e2e/scheduler_perf/wasm/nodenumber/main.go b/internal/e2e/scheduler_perf/wasm/nodenumber/main.go index 6afa1751..06cb51b3 100644 --- a/internal/e2e/scheduler_perf/wasm/nodenumber/main.go +++ b/internal/e2e/scheduler_perf/wasm/nodenumber/main.go @@ -22,8 +22,6 @@ import ( "encoding/json" "fmt" - _ "github.com/wasilibs/nottinygc" - "sigs.k8s.io/kube-scheduler-wasm-extension/guest/api" "sigs.k8s.io/kube-scheduler-wasm-extension/guest/api/proto" "sigs.k8s.io/kube-scheduler-wasm-extension/guest/config" @@ -36,7 +34,7 @@ import ( // main is compiled to a WebAssembly function named "_start", called by the // wasm scheduler plugin during initialization. -func main() { +func init() { p, err := New(klog.Get(), config.Get()) if err != nil { panic(err) @@ -46,6 +44,8 @@ func main() { score.SetPlugin(p) } +func main() {} + func New(klog klogapi.Klog, jsonConfig []byte) (*NodeNumber, error) { var args nodeNumberArgs if jsonConfig != nil { diff --git a/internal/e2e/scheduler_perf/wasm/nodenumber/main.wasm b/internal/e2e/scheduler_perf/wasm/nodenumber/main.wasm index f6cb885a..686094c6 100644 Binary files a/internal/e2e/scheduler_perf/wasm/nodenumber/main.wasm and b/internal/e2e/scheduler_perf/wasm/nodenumber/main.wasm differ diff --git a/scheduler/plugin/guest.go b/scheduler/plugin/guest.go index 452be9ec..4c8f067a 100644 --- a/scheduler/plugin/guest.go +++ b/scheduler/plugin/guest.go @@ -86,7 +86,7 @@ func (pl *wasmPlugin) newGuest(ctx context.Context) (*guest, error) { // A guest may have an instantiation error, which writes to stdout or stderr. // Capture stdout and stderr during instantiation. var out bytes.Buffer - moduleConfig = moduleConfig.WithStdout(&out).WithStderr(&out) + moduleConfig = moduleConfig.WithStdout(&out).WithStderr(&out).WithStartFunctions("_initialize") // Set any args used for testing moduleConfig = moduleConfig.WithArgs(pl.guestArgs...)