Skip to content

Commit

Permalink
Merge pull request #18 from linkernetworks/alex/AddK8sGetNode
Browse files Browse the repository at this point in the history
Add k8s get node by name and list nodes
  • Loading branch information
Hung-Wei Chiu authored Jun 21, 2018
2 parents 6f5c10f + 7429dc8 commit 8e1bb4e
Show file tree
Hide file tree
Showing 6 changed files with 490 additions and 7 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ deploy:

after_success:
- cp build/src/coverage.txt coverage.txt
- bash <(curl -s https://codecov.io/bash)
- bash <(curl -s https://codecov.io/bash)
2 changes: 2 additions & 0 deletions src/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ type Config struct {

// the version settings of the current application
Version string `json:"version"`

Kubernetes string `json:"kubernetes"`
}

func Read(path string) (c Config, err error) {
Expand Down
25 changes: 25 additions & 0 deletions src/kubernetes/nodes.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package kubernetes

import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
)

func GetNode(clientset kubernetes.Interface, name string) (*corev1.Node, error) {
return clientset.CoreV1().Nodes().Get(name, metav1.GetOptions{})
}

func GetNodes(clientset kubernetes.Interface) ([]*corev1.Node, error) {
nodes := []*corev1.Node{}
nodesList, err := clientset.CoreV1().Nodes().List(metav1.ListOptions{})
if err != nil {
return nodes, err
}

for _, n := range nodesList.Items {
nodes = append(nodes, &n)
}

return nodes, nil
}
56 changes: 56 additions & 0 deletions src/kubernetes/nodes_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package kubernetes

import (
"github.com/stretchr/testify/assert"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
fakeclientset "k8s.io/client-go/kubernetes/fake"
"testing"
)

func TestGetNode(t *testing.T) {
clientset := fakeclientset.NewSimpleClientset()

node := corev1.Node{
ObjectMeta: metav1.ObjectMeta{
Name: "K8S-Node",
},
}
_, err := clientset.CoreV1().Nodes().Create(&node)
assert.NoError(t, err)

result, err := GetNode(clientset, "K8S-Node")
assert.NoError(t, err)
assert.Equal(t, node.GetName(), result.GetName())
}

func TestGetNodeFail(t *testing.T) {
clientset := fakeclientset.NewSimpleClientset()

_, err := GetNode(clientset, "UnKnown_Name")
assert.Error(t, err)
}

func TestGetNodes(t *testing.T) {
clientset := fakeclientset.NewSimpleClientset()

node := corev1.Node{
ObjectMeta: metav1.ObjectMeta{
Name: "K8S-Node1",
},
}
_, err := clientset.CoreV1().Nodes().Create(&node)
assert.NoError(t, err)

node = corev1.Node{
ObjectMeta: metav1.ObjectMeta{
Name: "K8S-Node2",
},
}
_, err = clientset.CoreV1().Nodes().Create(&node)
assert.NoError(t, err)

nodes, err := GetNodes(clientset)
assert.NoError(t, err)
assert.Equal(t, 2, len(nodes))
}
18 changes: 12 additions & 6 deletions src/serviceprovider/serviceprovider.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,17 @@ import (
"github.com/linkernetworks/logger"
"github.com/linkernetworks/vortex/src/config"

"github.com/linkernetworks/kubeconfig"
"github.com/linkernetworks/mongo"
"github.com/linkernetworks/redis"
"k8s.io/client-go/rest"
)

type Container struct {
Config config.Config
Redis *redis.Service
Mongo *mongo.Service
Config config.Config
Redis *redis.Service
Mongo *mongo.Service
Kubernetes *rest.Config
}

type ServiceDiscoverResponse struct {
Expand All @@ -30,10 +33,13 @@ func New(cf config.Config) *Container {
logger.Infof("Connecting to mongodb: %s", cf.Mongo.Url)
mongo := mongo.New(cf.Mongo.Url)

k8sConfig, _ := kubeconfig.Load(cf.Kubernetes)

sp := &Container{
Config: cf,
Redis: redisService,
Mongo: mongo,
Config: cf,
Redis: redisService,
Mongo: mongo,
Kubernetes: k8sConfig,
}

return sp
Expand Down
Loading

0 comments on commit 8e1bb4e

Please sign in to comment.