Initial Windows port for K3s multi-exec binary (#7)

This commit is contained in:
Sean Yen 2023-06-16 23:16:37 -07:00 committed by Brad Davidson
parent 20b9bae9b3
commit 1255b64eed
No known key found for this signature in database
GPG Key ID: FFB7A9376A9349B9
4 changed files with 43 additions and 4 deletions

View File

@ -1,3 +1,6 @@
//go:build linux
// +build linux
package main
import (

36
main_windows.go Normal file
View File

@ -0,0 +1,36 @@
//go:build windows
// +build windows
package main
import (
"fmt"
"os"
"path/filepath"
"strings"
"github.com/docker/docker/pkg/reexec"
"github.com/containernetworking/cni/pkg/version"
bv "github.com/containernetworking/plugins/pkg/utils/buildversion"
hostlocal "github.com/containernetworking/plugins/plugins/ipam/host-local"
"github.com/containernetworking/plugins/plugins/main/windows/win-bridge"
"github.com/containernetworking/plugins/plugins/main/windows/win-overlay"
"github.com/containernetworking/plugins/plugins/meta/flannel"
)
func main() {
os.Args[0] = filepath.Base(os.Args[0])
reexec.Register("flannel", flannel.Main)
reexec.Register("host-local", hostlocal.Main)
reexec.Register("win-bridge", winbridge.Main)
reexec.Register("win-overlay", winoverlay.Main)
reexec.Register("flannel.exe", flannel.Main)
reexec.Register("host-local.exe", hostlocal.Main)
reexec.Register("win-bridge.exe", winbridge.Main)
reexec.Register("win-overlay.exe", winoverlay.Main)
if !reexec.Init() {
_, _ = fmt.Fprintln(os.Stderr, bv.BuildString("plugins"))
_, _ = fmt.Fprintf(os.Stderr, "CNI protocol versions supported: %s\n", strings.Join(version.All.SupportedVersions(), ", "))
}
}

View File

@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
package main
package winbridge
import (
"encoding/json"
@ -214,6 +214,6 @@ func cmdCheck(_ *skel.CmdArgs) error {
return nil
}
func main() {
func Main() {
skel.PluginMain(cmdAdd, cmdCheck, cmdDel, version.All, bv.BuildString("win-bridge"))
}

View File

@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
package main
package winoverlay
import (
"encoding/json"
@ -287,6 +287,6 @@ func cmdCheck(_ *skel.CmdArgs) error {
return nil
}
func main() {
func Main() {
skel.PluginMain(cmdAdd, cmdCheck, cmdDel, version.All, bv.BuildString("win-overlay"))
}