Add `linkerd inject --manual` test into install_test.go (#2791)

Add `linkerd inject --manual` test into install_test.go

Signed-off-by: Alejandro Pedraza <alejandro@buoyant.io>
This commit is contained in:
Alejandro Pedraza 2019-05-08 11:13:30 -05:00 committed by GitHub
parent 3d58c9d86e
commit 2ae0daca9f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 120 additions and 60 deletions

View File

@ -54,7 +54,7 @@ var (
knownControllerErrorsRegex = regexp.MustCompile(strings.Join([]string{
`.* linkerd-controller-.*-.* tap time=".*" level=error msg="\[.*\] encountered an error: rpc error: code = Canceled desc = context canceled"`,
`.* linkerd-web-.*-.* web time=".*" level=error msg="Post http://linkerd-controller-api\..*\.svc\.cluster\.local:8085/api/v1/Version: context canceled"`,
`.* linkerd-proxy-injector-.*-.* proxy-injector time=".*" level=warning msg="failed to retrieve replicaset from indexer, retrying with get request .*-smoke-test/smoke-test-.*-.*: replicaset\.apps \\"smoke-test-.*-.*\\" not found"`,
`.* linkerd-proxy-injector-.*-.* proxy-injector time=".*" level=warning msg="failed to retrieve replicaset from indexer, retrying with get request .*-smoke-test.*/smoke-test-.*-.*: replicaset\.apps \\"smoke-test-.*-.*\\" not found"`,
}, "|"))
knownProxyErrorsRegex = regexp.MustCompile(strings.Join([]string{
@ -74,6 +74,28 @@ var (
// prometheus scrape failures of control-plane
`.* linkerd-prometheus-.*-.* linkerd-proxy ERR! \[ +\d+.\d+s\] proxy={server=out listen=127\.0\.0\.1:4140 remote=.*} linkerd2_proxy::proxy::http::router service error: an error occurred trying to connect: .*`,
}, "|"))
injectionCases = []struct {
ns string
annotations map[string]string
injectArgs []string
}{
{
ns: "smoke-test",
annotations: map[string]string{
k8s.ProxyInjectAnnotation: k8s.ProxyInjectEnabled,
},
injectArgs: nil,
},
{
ns: "smoke-test-manual",
injectArgs: []string{"--manual"},
},
{
ns: "smoke-test-ann",
injectArgs: []string{},
},
}
)
//////////////////////
@ -299,22 +321,42 @@ func TestDashboard(t *testing.T) {
}
func TestInject(t *testing.T) {
var out string
var err error
prefixedNs := TestHelper.GetTestNamespace("smoke-test")
out, err = testutil.ReadFile("testdata/smoke_test.yaml")
resources, err := testutil.ReadFile("testdata/smoke_test.yaml")
if err != nil {
t.Fatalf("failed to read smoke test file: %s", err)
}
err = TestHelper.CreateNamespaceIfNotExists(prefixedNs, map[string]string{
k8s.ProxyInjectAnnotation: k8s.ProxyInjectEnabled,
})
for _, tc := range injectionCases {
tc := tc // pin
t.Run(tc.ns, func(t *testing.T) {
var out string
prefixedNs := TestHelper.GetTestNamespace(tc.ns)
err := TestHelper.CreateNamespaceIfNotExists(prefixedNs, tc.annotations)
if err != nil {
t.Fatalf("failed to create %s namespace: %s", prefixedNs, err)
}
if tc.injectArgs != nil {
cmd := []string{"inject"}
cmd = append(cmd, tc.injectArgs...)
cmd = append(cmd, "testdata/smoke_test.yaml")
var injectReport string
out, injectReport, err = TestHelper.LinkerdRun(cmd...)
if err != nil {
t.Fatalf("linkerd inject command failed: %s\n%s", err, out)
}
err = TestHelper.ValidateOutput(injectReport, "inject.report.golden")
if err != nil {
t.Fatalf("Received unexpected output\n%s", err.Error())
}
} else {
out = resources
}
out, err = TestHelper.KubectlApply(out, prefixedNs)
if err != nil {
t.Fatalf("kubectl apply command failed\n%s", out)
@ -342,6 +384,8 @@ func TestInject(t *testing.T) {
t.Fatalf("Expected application response to contain string [%s], but it was [%s]",
expectedStringInPayload, output)
}
})
}
}
func TestServiceProfileDeploy(t *testing.T) {
@ -350,7 +394,10 @@ func TestServiceProfileDeploy(t *testing.T) {
t.Fatalf("Unexpected error: %v %s", err, bbProto)
}
prefixedNs := TestHelper.GetTestNamespace("smoke-test")
for _, tc := range injectionCases {
tc := tc // pin
t.Run(tc.ns, func(t *testing.T) {
prefixedNs := TestHelper.GetTestNamespace(tc.ns)
cmd := []string{"profile", "-n", prefixedNs, "--proto", "-", "smoke-test-terminus-svc"}
bbSP, stderr, err := TestHelper.PipeToLinkerdRun(bbProto, cmd...)
@ -362,10 +409,15 @@ func TestServiceProfileDeploy(t *testing.T) {
if err != nil {
t.Fatalf("kubectl apply command failed: %s\n%s", err, out)
}
})
}
}
func TestCheckProxy(t *testing.T) {
prefixedNs := TestHelper.GetTestNamespace("smoke-test")
for _, tc := range injectionCases {
tc := tc // pin
t.Run(tc.ns, func(t *testing.T) {
prefixedNs := TestHelper.GetTestNamespace(tc.ns)
cmd := []string{"check", "--proxy", "--expected-version", TestHelper.GetVersion(), "--namespace", prefixedNs, "--wait=0"}
golden := "check.proxy.golden"
@ -385,6 +437,8 @@ func TestCheckProxy(t *testing.T) {
if err != nil {
t.Fatal(err.Error())
}
})
}
}
func TestLogs(t *testing.T) {

6
test/testdata/inject.report.golden vendored Normal file
View File

@ -0,0 +1,6 @@
deployment "smoke-test-terminus" injected
service "smoke-test-terminus-svc" skipped
deployment "smoke-test-gateway" injected
service "smoke-test-gateway-svc" skipped