Fix to build virtual-kubelet in windows
This commit is contained in:
63
vkubelet/lookup.go
Normal file
63
vkubelet/lookup.go
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
// +build !windows
|
||||||
|
|
||||||
|
package vkubelet
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/manager"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/aws"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/azure"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/azurebatch"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/cri"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/huawei"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/hypersh"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/mock"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/sfmesh"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/vic"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/web"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Compile time proof that our implementations meet the Provider interface.
|
||||||
|
var _ Provider = (*aws.FargateProvider)(nil)
|
||||||
|
var _ Provider = (*azure.ACIProvider)(nil)
|
||||||
|
var _ Provider = (*hypersh.HyperProvider)(nil)
|
||||||
|
var _ Provider = (*web.BrokerProvider)(nil)
|
||||||
|
var _ Provider = (*mock.MockProvider)(nil)
|
||||||
|
var _ Provider = (*huawei.CCIProvider)(nil)
|
||||||
|
var _ Provider = (*azurebatch.Provider)(nil)
|
||||||
|
var _ Provider = (*sfmesh.SFMeshProvider)(nil)
|
||||||
|
|
||||||
|
// start of providers not supported on windows
|
||||||
|
var _ Provider = (*cri.CRIProvider)(nil)
|
||||||
|
var _ Provider = (*vic.VicProvider)(nil)
|
||||||
|
|
||||||
|
func lookupProvider(provider, providerConfig string, rm *manager.ResourceManager, nodeName, operatingSystem, internalIP string, daemonEndpointPort int32) (Provider, error) {
|
||||||
|
switch provider {
|
||||||
|
case "aws":
|
||||||
|
return aws.NewFargateProvider(providerConfig, rm, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
||||||
|
case "azure":
|
||||||
|
return azure.NewACIProvider(providerConfig, rm, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
||||||
|
case "azurebatch":
|
||||||
|
return azurebatch.NewBatchProvider(providerConfig, rm, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
||||||
|
case "hyper":
|
||||||
|
return hypersh.NewHyperProvider(providerConfig, rm, nodeName, operatingSystem)
|
||||||
|
case "web":
|
||||||
|
return web.NewBrokerProvider(nodeName, operatingSystem, daemonEndpointPort)
|
||||||
|
case "mock":
|
||||||
|
return mock.NewMockProvider(providerConfig, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
||||||
|
case "huawei":
|
||||||
|
return huawei.NewCCIProvider(providerConfig, rm, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
||||||
|
case "sfmesh":
|
||||||
|
return sfmesh.NewSFMeshProvider(rm, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
||||||
|
// start of providers not supported on windows
|
||||||
|
case "cri":
|
||||||
|
return cri.NewCRIProvider(nodeName, operatingSystem, internalIP, rm, daemonEndpointPort)
|
||||||
|
case "vic":
|
||||||
|
return vic.NewVicProvider(providerConfig, rm, nodeName, operatingSystem)
|
||||||
|
default:
|
||||||
|
fmt.Printf("Provider '%s' is not supported\n", provider)
|
||||||
|
}
|
||||||
|
var p Provider
|
||||||
|
return p, nil
|
||||||
|
}
|
||||||
50
vkubelet/lookup_windows.go
Normal file
50
vkubelet/lookup_windows.go
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
package vkubelet
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/manager"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/aws"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/azure"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/azurebatch"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/huawei"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/hypersh"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/mock"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/sfmesh"
|
||||||
|
"github.com/virtual-kubelet/virtual-kubelet/providers/web"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Compile time proof that our implementations meet the Provider interface.
|
||||||
|
var _ Provider = (*aws.FargateProvider)(nil)
|
||||||
|
var _ Provider = (*azure.ACIProvider)(nil)
|
||||||
|
var _ Provider = (*hypersh.HyperProvider)(nil)
|
||||||
|
var _ Provider = (*web.BrokerProvider)(nil)
|
||||||
|
var _ Provider = (*mock.MockProvider)(nil)
|
||||||
|
var _ Provider = (*huawei.CCIProvider)(nil)
|
||||||
|
var _ Provider = (*azurebatch.Provider)(nil)
|
||||||
|
var _ Provider = (*sfmesh.SFMeshProvider)(nil)
|
||||||
|
|
||||||
|
func lookupProvider(provider, providerConfig string, rm *manager.ResourceManager, nodeName, operatingSystem, internalIP string, daemonEndpointPort int32) (Provider, error) {
|
||||||
|
switch provider {
|
||||||
|
case "aws":
|
||||||
|
return aws.NewFargateProvider(providerConfig, rm, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
||||||
|
case "azure":
|
||||||
|
return azure.NewACIProvider(providerConfig, rm, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
||||||
|
case "azurebatch":
|
||||||
|
return azurebatch.NewBatchProvider(providerConfig, rm, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
||||||
|
case "hyper":
|
||||||
|
return hypersh.NewHyperProvider(providerConfig, rm, nodeName, operatingSystem)
|
||||||
|
case "web":
|
||||||
|
return web.NewBrokerProvider(nodeName, operatingSystem, daemonEndpointPort)
|
||||||
|
case "mock":
|
||||||
|
return mock.NewMockProvider(providerConfig, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
||||||
|
case "huawei":
|
||||||
|
return huawei.NewCCIProvider(providerConfig, rm, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
||||||
|
case "sfmesh":
|
||||||
|
return sfmesh.NewSFMeshProvider(rm, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
||||||
|
default:
|
||||||
|
fmt.Printf("Provider '%s' is not supported\n", provider)
|
||||||
|
}
|
||||||
|
var p Provider
|
||||||
|
return p, nil
|
||||||
|
}
|
||||||
@@ -4,33 +4,11 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/aws"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/azure"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/azurebatch"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/cri"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/huawei"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/hypersh"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/mock"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/sfmesh"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/vic"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/web"
|
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/client-go/tools/remotecommand"
|
"k8s.io/client-go/tools/remotecommand"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Compile time proof that our implementations meet the Provider interface.
|
|
||||||
var _ Provider = (*aws.FargateProvider)(nil)
|
|
||||||
var _ Provider = (*azure.ACIProvider)(nil)
|
|
||||||
var _ Provider = (*hypersh.HyperProvider)(nil)
|
|
||||||
var _ Provider = (*vic.VicProvider)(nil)
|
|
||||||
var _ Provider = (*web.BrokerProvider)(nil)
|
|
||||||
var _ Provider = (*mock.MockProvider)(nil)
|
|
||||||
var _ Provider = (*huawei.CCIProvider)(nil)
|
|
||||||
var _ Provider = (*azurebatch.Provider)(nil)
|
|
||||||
var _ Provider = (*cri.CRIProvider)(nil)
|
|
||||||
var _ Provider = (*sfmesh.SFMeshProvider)(nil)
|
|
||||||
|
|
||||||
// Provider contains the methods required to implement a virtual-kubelet provider.
|
// Provider contains the methods required to implement a virtual-kubelet provider.
|
||||||
type Provider interface {
|
type Provider interface {
|
||||||
// CreatePod takes a Kubernetes Pod and deploys it within the provider.
|
// CreatePod takes a Kubernetes Pod and deploys it within the provider.
|
||||||
|
|||||||
@@ -11,16 +11,6 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/manager"
|
"github.com/virtual-kubelet/virtual-kubelet/manager"
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/aws"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/azure"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/azurebatch"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/cri"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/huawei"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/hypersh"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/mock"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/sfmesh"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/vic"
|
|
||||||
"github.com/virtual-kubelet/virtual-kubelet/providers/web"
|
|
||||||
corev1 "k8s.io/api/core/v1"
|
corev1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
@@ -81,61 +71,10 @@ func New(nodeName, operatingSystem, namespace, kubeConfig, taint, provider, prov
|
|||||||
|
|
||||||
internalIP := os.Getenv("VKUBELET_POD_IP")
|
internalIP := os.Getenv("VKUBELET_POD_IP")
|
||||||
|
|
||||||
var p Provider
|
p, err = lookupProvider(provider, providerConfig, rm, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
||||||
switch provider {
|
|
||||||
case "aws":
|
|
||||||
p, err = aws.NewFargateProvider(providerConfig, rm, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
case "azure":
|
|
||||||
p, err = azure.NewACIProvider(providerConfig, rm, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
case "azurebatch":
|
|
||||||
p, err = azurebatch.NewBatchProvider(providerConfig, rm, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
case "hyper":
|
|
||||||
p, err = hypersh.NewHyperProvider(providerConfig, rm, nodeName, operatingSystem)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
case "vic":
|
|
||||||
p, err = vic.NewVicProvider(providerConfig, rm, nodeName, operatingSystem)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
case "web":
|
|
||||||
p, err = web.NewBrokerProvider(nodeName, operatingSystem, daemonEndpointPort)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
case "mock":
|
|
||||||
p, err = mock.NewMockProvider(providerConfig, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
case "cri":
|
|
||||||
p, err = cri.NewCRIProvider(nodeName, operatingSystem, internalIP, rm, daemonEndpointPort)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
case "huawei":
|
|
||||||
p, err = huawei.NewCCIProvider(providerConfig, rm, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
case "sfmesh":
|
|
||||||
p, err = sfmesh.NewSFMeshProvider(rm, nodeName, operatingSystem, internalIP, daemonEndpointPort)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
fmt.Printf("Provider '%s' is not supported\n", provider)
|
|
||||||
}
|
|
||||||
|
|
||||||
s := &Server{
|
s := &Server{
|
||||||
namespace: namespace,
|
namespace: namespace,
|
||||||
|
|||||||
Reference in New Issue
Block a user