added Service Fabric Mesh provider

This commit is contained in:
yaron2
2018-07-31 16:00:56 -07:00
parent 3f83588e59
commit 36db5d9583
5 changed files with 942 additions and 6 deletions

View File

@@ -11,6 +11,7 @@ import (
"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"
@@ -28,6 +29,7 @@ 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.
type Provider interface {

View File

@@ -18,6 +18,7 @@ import (
"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"
@@ -31,7 +32,7 @@ import (
)
const (
PodStatusReason_ProviderFailed = "ProviderFailed"
PodStatusReason_ProviderFailed = "ProviderFailed"
)
// Server masquarades itself as a kubelet and allows for the virtual node to be backed by non-vm/node providers.
@@ -127,6 +128,11 @@ func New(nodeName, operatingSystem, namespace, kubeConfig, taint, provider, prov
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)
}
@@ -236,7 +242,7 @@ func (s *Server) Run() error {
log.Fatal("Failed to watch pods", err)
}
loop:
loop:
for {
select {
case ev, ok := <-s.podWatcher.ResultChan():
@@ -289,10 +295,10 @@ func (s *Server) updateNode() {
}
if errors.IsNotFound(err) {
if err = s.registerNode(); err != nil {
if err = s.registerNode(); err != nil {
log.Println("Failed to register node:", err)
return
}
return
}
}
n.ResourceVersion = "" // Blank out resource version to prevent object has been modified error
@@ -339,7 +345,7 @@ func (s *Server) reconcile() {
for _, p := range providerPods {
if p.Namespace == pod.Namespace && p.Name == pod.Name {
providerPod = p
break;
break
}
}