Fix to build virtual-kubelet in windows

This commit is contained in:
Nick Maliwacki
2018-08-09 17:03:06 -07:00
parent a1677ce5e0
commit bf02f887f0
4 changed files with 116 additions and 86 deletions

63
vkubelet/lookup.go Normal file
View 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
}

View 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
}

View File

@@ -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.

View File

@@ -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,