mirror of
https://github.com/rancher/rke.git
synced 2025-08-05 09:00:31 +00:00
87 lines
2.1 KiB
Go
87 lines
2.1 KiB
Go
|
package k8s
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
check "gopkg.in/check.v1"
|
||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||
|
"k8s.io/client-go/kubernetes"
|
||
|
"k8s.io/client-go/pkg/api/v1"
|
||
|
)
|
||
|
|
||
|
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)
|
||
|
}
|
||
|
}
|