1 package healthcheck
2
3 import (
4 "testing"
5
6 "github.com/go-test/deep"
7 "github.com/linkerd/linkerd2/pkg/k8s"
8 corev1 "k8s.io/api/core/v1"
9 )
10
11 func TestHasExistingSidecars(t *testing.T) {
12 for _, tc := range []struct {
13 podSpec *corev1.PodSpec
14 expected bool
15 }{
16 {
17 podSpec: &corev1.PodSpec{},
18 expected: false,
19 },
20 {
21 podSpec: &corev1.PodSpec{
22 Containers: []corev1.Container{
23 {
24 Name: "foo",
25 Image: "bar",
26 },
27 },
28 InitContainers: []corev1.Container{
29 {
30 Name: "foo",
31 Image: "bar",
32 },
33 },
34 },
35 expected: false,
36 },
37 {
38 podSpec: &corev1.PodSpec{
39 Containers: []corev1.Container{
40 {
41 Name: k8s.ProxyContainerName,
42 },
43 },
44 },
45 expected: true,
46 },
47 {
48 podSpec: &corev1.PodSpec{
49 InitContainers: []corev1.Container{
50 {
51 Name: k8s.ProxyContainerName,
52 },
53 },
54 },
55 expected: true,
56 },
57 {
58 podSpec: &corev1.PodSpec{
59 Containers: []corev1.Container{
60 {
61 Name: "istio-proxy",
62 },
63 },
64 },
65 expected: true,
66 },
67 {
68 podSpec: &corev1.PodSpec{
69 Containers: []corev1.Container{
70 {
71 Image: "cr.l5d.io/linkerd/proxy:1.0.0",
72 },
73 },
74 },
75 expected: true,
76 },
77 {
78 podSpec: &corev1.PodSpec{
79 Containers: []corev1.Container{
80 {
81 Image: "gcr.io/istio-release/proxyv2:1.0.0",
82 },
83 },
84 },
85 expected: true,
86 },
87 {
88 podSpec: &corev1.PodSpec{
89 InitContainers: []corev1.Container{
90 {
91 Name: "linkerd-init",
92 },
93 },
94 },
95 expected: true,
96 },
97 {
98 podSpec: &corev1.PodSpec{
99 InitContainers: []corev1.Container{
100 {
101 Name: "istio-init",
102 },
103 },
104 },
105 expected: true,
106 },
107 {
108 podSpec: &corev1.PodSpec{
109 InitContainers: []corev1.Container{
110 {
111 Image: "cr.l5d.io/linkerd/proxy-init:2.2.0",
112 },
113 },
114 },
115 expected: true,
116 },
117 {
118 podSpec: &corev1.PodSpec{
119 InitContainers: []corev1.Container{
120 {
121 Image: "gcr.io/istio-release/proxy_init:1.0.0",
122 },
123 },
124 },
125 expected: true,
126 },
127 } {
128 if diff := deep.Equal(tc.expected, HasExistingSidecars(tc.podSpec)); diff != nil {
129 t.Errorf("%+v", diff)
130 }
131 }
132 }
133
View as plain text