github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/boom/application/applications/kubemetricsexporter/helm.go (about) 1 package kubemetricsexporter 2 3 import ( 4 toolsetslatest "github.com/caos/orbos/internal/operator/boom/api/latest" 5 "github.com/caos/orbos/internal/operator/boom/application/applications/kubemetricsexporter/helm" 6 "github.com/caos/orbos/internal/operator/boom/templator/helm/chart" 7 "github.com/caos/orbos/internal/utils/helper" 8 "github.com/caos/orbos/mntr" 9 ) 10 11 func (k *KubeStateMetrics) SpecToHelmValues(monitor mntr.Monitor, toolset *toolsetslatest.ToolsetSpec) interface{} { 12 imageTags := helm.GetImageTags() 13 image := "quay.io/coreos/kube-state-metrics" 14 15 if toolset != nil && toolset.KubeMetricsExporter != nil { 16 helper.OverwriteExistingValues(imageTags, map[string]string{ 17 image: toolset.KubeMetricsExporter.OverwriteVersion, 18 }) 19 helper.OverwriteExistingKey(imageTags, &image, toolset.KubeMetricsExporter.OverwriteImage) 20 } 21 values := helm.DefaultValues(imageTags, image) 22 23 spec := toolset.KubeMetricsExporter 24 25 if spec == nil { 26 return values 27 } 28 29 if spec.ReplicaCount != 0 { 30 values.Replicas = spec.ReplicaCount 31 } 32 33 if spec.Affinity != nil { 34 values.Affinity = spec.Affinity 35 } 36 37 if spec.NodeSelector != nil { 38 for k, v := range spec.NodeSelector { 39 values.NodeSelector[k] = v 40 } 41 } 42 43 if spec.Tolerations != nil { 44 for _, tol := range spec.Tolerations { 45 values.Tolerations = append(values.Tolerations, tol) 46 } 47 } 48 49 if spec.Resources != nil { 50 values.Resources = spec.Resources 51 } 52 53 return values 54 } 55 56 func (k *KubeStateMetrics) GetChartInfo() *chart.Chart { 57 return helm.GetChartInfo() 58 } 59 60 func (k *KubeStateMetrics) GetImageTags() map[string]string { 61 return helm.GetImageTags() 62 }