-
Notifications
You must be signed in to change notification settings - Fork 684
/
k8sapply.go
38 lines (33 loc) · 1 KB
/
k8sapply.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
package dtest
import (
"fmt"
"os"
"time"
"github.com/datawire/ambassador/pkg/k8s"
"github.com/datawire/ambassador/pkg/kubeapply"
"github.com/datawire/ambassador/pkg/supervisor"
)
// K8sApply applies the supplied manifests to the cluster indicated by
// the supplied kubeconfig.
func K8sApply(files ...string) {
if os.Getenv("DOCKER_REGISTRY") == "" {
os.Setenv("DOCKER_REGISTRY", DockerRegistry())
}
kubeconfig := Kubeconfig()
err := kubeapply.Kubeapply(k8s.NewKubeInfo(kubeconfig, "", ""), 300*time.Second, false, false, files...)
if err != nil {
fmt.Println()
fmt.Println(err)
fmt.Printf(`
Please note, if this is a timeout, then your kubernetes cluster may not
exist or may be unreachable. Check access to your cluster with "kubectl --kubeconfig %s".
`, kubeconfig)
fmt.Println()
cmd := supervisor.Command(
prefix, "kubectl", "--kubeconfig", kubeconfig,
"get", "--all-namespaces", "ns,svc,deploy,po",
)
_ = cmd.Run() // Command output and any error will be logged
os.Exit(1)
}
}