diff --git a/charts/falco/tests/unit/serviceTemplate_test.go b/charts/falco/tests/unit/serviceTemplate_test.go index 1252216d..1f76bcd2 100644 --- a/charts/falco/tests/unit/serviceTemplate_test.go +++ b/charts/falco/tests/unit/serviceTemplate_test.go @@ -57,18 +57,77 @@ func (s *serviceTemplateTest) TestCreationDefaultValues() { s.Equal("error while running command: exit status 1; Error: could not find template templates/service.yaml in chart", err.Error()) } - func (s *serviceTemplateTest) TestDefaultLabelsValues() { // Render the service and check that it has not been rendered. output, err := helm.RenderTemplateE(s.T(), &helm.Options{}, s.chartPath, s.releaseName, s.templates) s.Error(err, "should error") s.Equal("error while running command: exit status 1; Error: could not find template templates/service.yaml in chart", err.Error()) + + cInfo, err := chartInfo(s.T(), s.chartPath) + s.NoError(err) + // Get app version. + appVersion, found := cInfo["appVersion"] + s.True(found, "should find app version in chart info") + appVersion = appVersion.(string) + // Get chart version. + chartVersion, found := cInfo["version"] + s.True(found, "should find chart version in chart info") + // Get chart name. + chartName, found := cInfo["name"] + s.True(found, "should find chart name in chart info") + chartName = chartName.(string) + expectedLabels := map[string]string{ + "helm.sh/chart": fmt.Sprintf("%s-%s", chartName, chartVersion), + "app.kubernetes.io/name": chartName.(string), + "app.kubernetes.io/instance": s.releaseName, + "app.kubernetes.io/version": appVersion.(string), + "app.kubernetes.io/managed-by": "Helm", + } var svc corev1.Service helm.UnmarshalK8SYaml(s.T(), output, &svc) - s.Equal("falco", svc.Metadata.Labels["app.kubernetes.io/name"]) - s.Equal("Helm", svc.Metadata.Labels["app.kubernetes.io/managed-by"]) - s.Equal("0.38.2", svc.Metadata.Labels["app.kubernetes.io/version"]) - s.Equal("falco-4.8.1", svc.Metadata.Labels["helm.sh/chart"]) - s.Equal("falco-metrics", svc.Metadata.Labels["type"]) + labels := svc.GetLabels() + for key, value := range labels { + expectedVal := expectedLabels[key] + s.Equal(expectedVal, value) + } } + + +func (s *serviceTemplateTest) TestCustomLabelsValues() { + // Render the service and check that it has not been rendered. + options := &helm.Options{SetValues: map[string]string{"metrics.service.labels" : {"custom-label": "falco-label"}}} + output, err := helm.RenderTemplateE(s.T(), &helm.Options{}, s.chartPath, s.releaseName, s.templates) + s.Error(err, "should error") + s.Equal("error while running command: exit status 1; Error: could not find template templates/service.yaml in chart", err.Error()) + + + cInfo, err := chartInfo(s.T(), s.chartPath) + s.NoError(err) + // Get app version. + appVersion, found := cInfo["appVersion"] + s.True(found, "should find app version in chart info") + appVersion = appVersion.(string) + // Get chart version. + chartVersion, found := cInfo["version"] + s.True(found, "should find chart version in chart info") + // Get chart name. + chartName, found := cInfo["name"] + s.True(found, "should find chart name in chart info") + chartName = chartName.(string) + expectedLabels := map[string]string{ + "helm.sh/chart": fmt.Sprintf("%s-%s", chartName, chartVersion), + "app.kubernetes.io/name": chartName.(string), + "app.kubernetes.io/instance": s.releaseName, + "app.kubernetes.io/version": appVersion.(string), + "app.kubernetes.io/managed-by": "Helm", + } + var svc corev1.Service + helm.UnmarshalK8SYaml(s.T(), output, &svc) + labels := svc.GetLabels() + for key, value := range labels { + expectedVal := expectedLabels[key] + s.Equal(expectedVal, value) + } + s.Equal("falco-label", labels["custom-label"]) +} \ No newline at end of file