Ctrl K
ComunidadGuías…

pkg/gitops/helm_labels_test.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package gitops

import (
	"testing"

	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

	"github.com/skyhook-io/radar/pkg/resourceid"
)

func TestFluxHelmLabelledRelease(t *testing.T) {
	origin := map[string]string{fluxHelmNameLabel: "podinfo", fluxHelmNSLabel: "flux-system"}
	yes, no := true, false
	release := resourceid.Ref{Group: "helm.toolkit.fluxcd.io", Kind: "HelmRelease", Namespace: "flux-system", Name: "podinfo"}
	for _, tc := range []struct {
		name string
		meta metav1.ObjectMeta
		want bool
	}{
		{name: "origin labels", meta: metav1.ObjectMeta{Labels: origin}, want: true},
		{name: "name without namespace", meta: metav1.ObjectMeta{Labels: map[string]string{fluxHelmNameLabel: "podinfo"}}},
		{name: "chart instance label", meta: metav1.ObjectMeta{Labels: map[string]string{"app.kubernetes.io/instance": "podinfo"}}},
		{name: "Helm hook", meta: metav1.ObjectMeta{Labels: origin, Annotations: map[string]string{"helm.sh/hook": "pre-upgrade"}}},
		{name: "generated by a controller", meta: metav1.ObjectMeta{Labels: origin, OwnerReferences: []metav1.OwnerReference{{Kind: "ReplicaSet", Name: "podinfo-abc", Controller: &yes}}}},
		{name: "owned without a controller", meta: metav1.ObjectMeta{Labels: origin, OwnerReferences: []metav1.OwnerReference{{Kind: "ConfigMap", Name: "anchor", Controller: &no}}}, want: true},
	} {
		t.Run(tc.name, func(t *testing.T) {
			got, ok := FluxHelmLabelledRelease(&tc.meta)
			if ok != tc.want || ok && got != release {
				t.Fatalf("FluxHelmLabelledRelease = %v, %v; want member=%v", got, ok, tc.want)
			}
		})
	}
}