/
helpers.go
40 lines (33 loc) · 850 Bytes
/
helpers.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package test
import (
"errors"
"fmt"
coreV1 "k8s.io/api/core/v1"
metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
)
func checkNamespaces(c *kubernetes.Clientset, testNamespaces []string) error {
namespaces, err := c.CoreV1().Namespaces().List(metaV1.ListOptions{})
if nil != err {
return err
}
if 0 == len(namespaces.Items) {
return errors.New("no namespaces returned")
}
set := map[string]bool{}
for _, ns := range testNamespaces {
set[ns] = true
}
for _, ns := range namespaces.Items {
_, ok := set[ns.Name]
if ok {
return errors.New(fmt.Sprintf("Namespace already exists: [%s]", ns.Name))
}
}
return nil
}
func createNamespace(c *kubernetes.Clientset, name string) (*coreV1.Namespace, error) {
ns := &coreV1.Namespace{}
ns.Name = name
return c.CoreV1().Namespaces().Create(ns)
}