...

Source file src/github.com/linkerd/linkerd2/pkg/healthcheck/sidecar_test.go

Documentation: github.com/linkerd/linkerd2/pkg/healthcheck

     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