1
0
mirror of https://github.com/rancher/rke.git synced 2025-04-27 19:25:44 +00:00
rke/k8s/k8s_test.go
2017-11-13 23:28:38 +02:00

87 lines
2.1 KiB
Go

package k8s
import (
"testing"
check "gopkg.in/check.v1"
"k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
)
const (
KubeConfigPath = "/etc/kubernetes/ssl/kubeconfig"
ConfigMapName = "testconfigmap"
ConfigYaml = `---
foo: bar
test: test123`
SecretFile = `secret123`
SecretName = "secret"
)
type KubernetesOperationsTestSuite struct {
kubeClient *kubernetes.Clientset
}
func Test(t *testing.T) {
check.TestingT(t)
}
var _ = check.Suite(&KubernetesOperationsTestSuite{})
func (k *KubernetesOperationsTestSuite) SetUpSuite(c *check.C) {
var err error
k.kubeClient, err = NewClient(KubeConfigPath)
meta := metav1.ObjectMeta{Name: metav1.NamespaceSystem}
ns := &v1.Namespace{
ObjectMeta: meta,
}
if _, err = k.kubeClient.CoreV1().Namespaces().Create(ns); err != nil {
c.Fatalf("Failed to set up test suite: %v", err)
}
}
func (k *KubernetesOperationsTestSuite) TestSaveConfig(c *check.C) {
var err error
if err != nil {
c.Fatalf("Failed to initialize kubernetes client")
}
// Make sure that config yaml file can be stored as a config map
err = UpdateConfigMap(k.kubeClient, []byte(ConfigYaml), ConfigMapName)
if err != nil {
c.Fatalf("Failed to store config map %s: %v", ConfigMapName, err)
}
cfgMap, err := GetConfigMap(k.kubeClient, ConfigMapName)
if err != nil {
c.Fatalf("Failed to fetch config map %s: %v", ConfigMapName, err)
}
if cfgMap.Data[ConfigMapName] != ConfigYaml {
c.Fatalf("Failed to verify the config map %s: %v", ConfigMapName, err)
}
}
func (k *KubernetesOperationsTestSuite) TestSaveSecret(c *check.C) {
var err error
if err != nil {
c.Fatalf("Failed to initialize kubernetes client")
}
err = UpdateSecret(k.kubeClient, SecretName, []byte(SecretFile), SecretName)
if err != nil {
c.Fatalf("Failed to store secret %s: %v", SecretName, err)
}
secret, err := GetSecret(k.kubeClient, SecretName)
if err != nil {
c.Fatalf("Failed to fetch secret %s: %v", SecretName, err)
}
if string(secret.Data[SecretName]) != SecretFile {
c.Fatalf("Failed to verify the secret %s: %v", SecretName, err)
}
}