1 package externalresources
2
3 import (
4 "context"
5 "fmt"
6 "os"
7 "testing"
8 "time"
9
10 "github.com/linkerd/linkerd2/testutil"
11 )
12
13 var TestHelper *testutil.TestHelper
14
15 func TestMain(m *testing.M) {
16 TestHelper = testutil.NewTestHelper()
17
18 TestHelper.WaitUntilDeployReady(testutil.LinkerdDeployReplicasEdge)
19 os.Exit(m.Run())
20 }
21
22
23
24
25
26 func TestRabbitMQDeploy(t *testing.T) {
27 ctx := context.Background()
28 TestHelper.WithDataPlaneNamespace(ctx, "rabbitmq-test", map[string]string{}, t, func(t *testing.T, testNamespace string) {
29 out, err := TestHelper.LinkerdRun("inject", "--manual", "testdata/rabbitmq-server.yaml")
30
31 if err != nil {
32 testutil.AnnotatedFatalf(t, "'linkerd inject' command failed", "'linkerd inject' command failed: %s", err)
33 }
34
35 _, err = TestHelper.KubectlApply(out, testNamespace)
36 if err != nil {
37 testutil.AnnotatedFatalf(t, "kubectl apply command failed", "'kubectl apply' command failed: %s", err)
38 }
39 if err := TestHelper.CheckPods(ctx, testNamespace, "rabbitmq", 1); err != nil {
40
41 if rce, ok := err.(*testutil.RestartCountError); ok {
42 testutil.AnnotatedWarn(t, "CheckPods timed-out %s", rce)
43 } else {
44 testutil.AnnotatedError(t, "CheckPods timed-out %s", err)
45 }
46 }
47
48 stdout, err := TestHelper.LinkerdRun("inject", "--manual", "testdata/rabbitmq-client.yaml")
49 if err != nil {
50 testutil.AnnotatedFatalf(t, "'linkerd inject' command failed", "'linkerd inject' command failed: %s", err)
51 }
52
53 _, err = TestHelper.KubectlApply(stdout, testNamespace)
54 if err != nil {
55 testutil.AnnotatedFatalf(t, "kubectl apply command failed", "'kubectl apply' command failed: %s", err)
56 }
57 if err := TestHelper.CheckPods(ctx, testNamespace, "rabbitmq-client", 1); err != nil {
58
59 if rce, ok := err.(*testutil.RestartCountError); ok {
60 testutil.AnnotatedWarn(t, "CheckPods timed-out %s", rce)
61 } else {
62 testutil.AnnotatedError(t, "CheckPods timed-out %s", err)
63 }
64 }
65
66 golden := "check.rabbitmq.golden"
67 timeout := 50 * time.Second
68 err = testutil.RetryFor(timeout, func() error {
69 out, err := TestHelper.Kubectl("", "-n", testNamespace, "logs", "-lapp=rabbitmq-client", "-crabbitmq-client")
70 if err != nil {
71 return fmt.Errorf("'kubectl logs -l app=rabbitmq-client -c rabbitmq-client' command failed\n%w", err)
72 }
73 err = TestHelper.ValidateOutput(out, golden)
74 if err != nil {
75 return fmt.Errorf("received unexpected output\n%w", err)
76 }
77 return nil
78 })
79 if err != nil {
80 testutil.AnnotatedFatal(t, fmt.Sprintf("'kubectl logs' command timed-out (%s)", timeout), err)
81 }
82
83 })
84
85 }
86
View as plain text