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  }