Skip to content
This repository was archived by the owner on Jul 30, 2021. It is now read-only.

Commit dc31e94

Browse files
author
Yifan Gu
authored
Merge pull request #579 from abhinavdahiya/testing_log_collector
Add log-collector to e2e tests
2 parents 50d1dc5 + 5664dfb commit dc31e94

File tree

277 files changed

+79479
-380
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

277 files changed

+79479
-380
lines changed

e2e/log.go

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package e2e
2+
3+
import (
4+
"log"
5+
"os"
6+
"path/filepath"
7+
8+
"fmt"
9+
10+
collector "github.com/coreos/ktestutil/log-collector"
11+
)
12+
13+
var cr *collector.Collector
14+
15+
func startLogging(keypath, dstDir string) error {
16+
cr = collector.New(&collector.Config{
17+
K8sClient: client,
18+
Namespace: namespace,
19+
RemoteKeyFile: keypath,
20+
})
21+
if err := cr.Start(); err != nil {
22+
return fmt.Errorf("error starting log-collector: %v", err)
23+
}
24+
25+
dirAbsPath, _ := filepath.Abs(dstDir)
26+
os.Mkdir(dirAbsPath, 0777)
27+
if err := cr.SetOutputToLocal(dirAbsPath); err != nil {
28+
return fmt.Errorf("error starting log-collector: %v", err)
29+
}
30+
return nil
31+
}
32+
33+
func collectLogs() error {
34+
pods, err := cr.CollectPodLogs("*")
35+
if err != nil {
36+
return fmt.Errorf("error collecting logs from log-collector: %v", err)
37+
}
38+
log.Printf("[%d] log files collected for pods", len(pods))
39+
40+
services, err := cr.CollectServiceLogs("*")
41+
if err != nil {
42+
return fmt.Errorf("error collecting logs from log-collector: %v", err)
43+
}
44+
log.Printf("[%d] log files collected for services", len(services))
45+
return nil
46+
}
47+
48+
func cleanUpLogging() error {
49+
if err := cr.Cleanup(); err != nil {
50+
return fmt.Errorf("error cleaning-up log-collector: %v", err)
51+
}
52+
return nil
53+
}

e2e/main_test.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ func TestMain(m *testing.M) {
3030
var kubeconfig = flag.String("kubeconfig", "../hack/quickstart/cluster/auth/kubeconfig", "absolute path to the kubeconfig file")
3131
var keypath = flag.String("keypath", "", "path to private key for ssh client")
3232
flag.IntVar(&expectedMasters, "expectedmasters", 1, "hint needed for certain tests to fail, skip, or block on missing resources")
33+
var logOuputDir = flag.String("log-output-dir", "./logs", "logs from the tests will be populated in this directory")
3334

3435
flag.Parse()
3536

@@ -59,9 +60,27 @@ func TestMain(m *testing.M) {
5960
os.Exit(1)
6061
}
6162

63+
// start log-collector
64+
// don't panic if it fails
65+
if err := startLogging(*keypath, *logOuputDir); err != nil {
66+
fmt.Println(err)
67+
}
68+
6269
// run tests
6370
exitCode := m.Run()
6471

72+
// cleanup log-collector assests
73+
// don't panic if it fails
74+
if err := cleanUpLogging(); err != nil {
75+
fmt.Println(err)
76+
}
77+
78+
// Collect all logs
79+
// don't panic if it fails
80+
if err := collectLogs(); err != nil {
81+
fmt.Println(err)
82+
}
83+
6584
if err := deleteNamespace(client, namespace); err != nil {
6685
fmt.Println(err)
6786
os.Exit(1)

glide.lock

Lines changed: 60 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

glide.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,5 @@ import:
4949
- ssh
5050
- ssh/agent
5151
- curve25519
52+
- package: github.com/coreos/ktestutil
53+
version: d598fab525dabcc7af2681ee0455efe47e055dd8

hack/multi-node/user-data.sample

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ coreos:
1313
Environment="RKT_RUN_ARGS=--uuid-file-save=/var/cache/kubelet-pod.uuid \
1414
--volume var-lib-cni,kind=host,source=/var/lib/cni \
1515
--volume opt-cni-bin,kind=host,source=/opt/cni/bin \
16+
--volume var-log,kind=host,source=/var/log \
17+
--mount volume=var-log,target=/var/log \
1618
--mount volume=var-lib-cni,target=/var/lib/cni \
1719
--mount volume=opt-cni-bin,target=/opt/cni/bin"
1820
ExecStartPre=/bin/mkdir -p /opt/cni/bin

hack/quickstart/kubelet.master

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Environment="RKT_RUN_ARGS=\
55
--uuid-file-save=/var/cache/kubelet-pod.uuid \
66
--volume etc-resolv,kind=host,source=/etc/resolv.conf --mount volume=etc-resolv,target=/etc/resolv.conf \
77
--volume opt-cni-bin,kind=host,source=/opt/cni/bin --mount volume=opt-cni-bin,target=/opt/cni/bin \
8+
--volume var-log,kind=host,source=/var/log --mount volume=var-log,target=/var/log \
89
--volume var-lib-cni,kind=host,source=/var/lib/cni --mount volume=var-lib-cni,target=/var/lib/cni"
910
EnvironmentFile=/etc/environment
1011
ExecStartPre=/bin/mkdir -p /etc/kubernetes/manifests

hack/quickstart/kubelet.worker

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Environment="RKT_RUN_ARGS=\
55
--uuid-file-save=/var/cache/kubelet-pod.uuid \
66
--volume etc-resolv,kind=host,source=/etc/resolv.conf --mount volume=etc-resolv,target=/etc/resolv.conf \
77
--volume opt-cni-bin,kind=host,source=/opt/cni/bin --mount volume=opt-cni-bin,target=/opt/cni/bin \
8+
--volume var-log,kind=host,source=/var/log --mount volume=var-log,target=/var/log \
89
--volume var-lib-cni,kind=host,source=/var/lib/cni --mount volume=var-lib-cni,target=/var/lib/cni"
910
EnvironmentFile=/etc/environment
1011
ExecStartPre=/bin/mkdir -p /etc/kubernetes/manifests

hack/single-node/user-data.sample

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ coreos:
1313
Environment="RKT_RUN_ARGS=--uuid-file-save=/var/cache/kubelet-pod.uuid \
1414
--volume var-lib-cni,kind=host,source=/var/lib/cni \
1515
--volume opt-cni-bin,kind=host,source=/opt/cni/bin \
16+
--volume var-log,kind=host,source=/var/log \
17+
--mount volume=var-log,target=/var/log \
1618
--mount volume=var-lib-cni,target=/var/lib/cni \
1719
--mount volume=opt-cni-bin,target=/opt/cni/bin"
1820
ExecStartPre=/bin/mkdir -p /opt/cni/bin

0 commit comments

Comments
 (0)