linkerd2/pkg/healthcheck/sidecar_test.go

123 lines
2.0 KiB
Go

package healthcheck
import (
"reflect"
"testing"
"github.com/linkerd/linkerd2/pkg/k8s"
corev1 "k8s.io/api/core/v1"
)
func TestHasExistingSidecars(t *testing.T) {
for _, tc := range []struct {
podSpec *corev1.PodSpec
expected bool
}{
{
podSpec: &corev1.PodSpec{},
expected: false,
},
{
podSpec: &corev1.PodSpec{
Containers: []corev1.Container{
{
Name: "foo",
Image: "bar",
},
},
InitContainers: []corev1.Container{
{
Name: "foo",
Image: "bar",
},
},
},
expected: false,
},
{
podSpec: &corev1.PodSpec{
Containers: []corev1.Container{
{
Name: k8s.ProxyContainerName,
},
},
},
expected: true,
},
{
podSpec: &corev1.PodSpec{
Containers: []corev1.Container{
{
Name: "istio-proxy",
},
},
},
expected: true,
},
{
podSpec: &corev1.PodSpec{
Containers: []corev1.Container{
{
Image: "ghcr.io/linkerd/proxy:1.0.0",
},
},
},
expected: true,
},
{
podSpec: &corev1.PodSpec{
Containers: []corev1.Container{
{
Image: "gcr.io/istio-release/proxyv2:1.0.0",
},
},
},
expected: true,
},
{
podSpec: &corev1.PodSpec{
InitContainers: []corev1.Container{
{
Name: "linkerd-init",
},
},
},
expected: true,
},
{
podSpec: &corev1.PodSpec{
InitContainers: []corev1.Container{
{
Name: "istio-init",
},
},
},
expected: true,
},
{
podSpec: &corev1.PodSpec{
InitContainers: []corev1.Container{
{
Image: "ghcr.io/linkerd/proxy-init:1.0.0",
},
},
},
expected: true,
},
{
podSpec: &corev1.PodSpec{
InitContainers: []corev1.Container{
{
Image: "gcr.io/istio-release/proxy_init:1.0.0",
},
},
},
expected: true,
},
} {
if !reflect.DeepEqual(HasExistingSidecars(tc.podSpec), tc.expected) {
t.Errorf("expected: %v, got: %v", tc.expected, HasExistingSidecars(tc.podSpec))
}
}
}