github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/boom/application/applications/metricspersisting/helm/default.go (about)

     1  package helm
     2  
     3  import (
     4  	prometheusoperator "github.com/caos/orbos/internal/operator/boom/application/applications/metriccollection/helm"
     5  	"github.com/caos/orbos/pkg/kubernetes/k8s"
     6  	corev1 "k8s.io/api/core/v1"
     7  	"k8s.io/apimachinery/pkg/api/resource"
     8  )
     9  
    10  func DefaultValues(imageTags map[string]string, image string) *Values {
    11  	promValues := &PrometheusValues{
    12  		Enabled: true,
    13  		ServiceAccount: &ServiceAccount{
    14  			Create: true,
    15  		},
    16  		Service: &Service{
    17  			Port:       9090,
    18  			TargetPort: 9090,
    19  			NodePort:   30090,
    20  			Type:       "ClusterIP",
    21  		},
    22  		ServicePerReplica: &ServicePerReplica{
    23  			Enabled:    false,
    24  			Port:       9090,
    25  			TargetPort: 9090,
    26  			NodePort:   30091,
    27  		},
    28  		PodDisruptionBudget: &PodDisruptionBudget{
    29  			Enabled:      false,
    30  			MinAvailable: 1,
    31  		},
    32  		Ingress: &Ingress{
    33  			Enabled: false,
    34  		},
    35  		IngressPerReplica: &IngressPerReplica{
    36  			Enabled: false,
    37  		},
    38  		PodSecurityPolicy: &PodSecurityPolicy{},
    39  		ServiceMonitor: &ServiceMonitor{
    40  			SelfMonitor: false,
    41  		},
    42  		PrometheusSpec: &PrometheusSpec{
    43  			Tolerations:  nil,
    44  			NodeSelector: map[string]string{},
    45  			Image: &Image{
    46  				Repository: image,
    47  				Tag:        imageTags[image],
    48  			},
    49  			RuleSelectorNilUsesHelmValues:           true,
    50  			ServiceMonitorSelectorNilUsesHelmValues: true,
    51  			PodMonitorSelectorNilUsesHelmValues:     true,
    52  			Retention:                               "10d",
    53  			Replicas:                                1,
    54  			LogLevel:                                "info",
    55  			LogFormat:                               "logfmt",
    56  			RoutePrefix:                             "/",
    57  			PodAntiAffinityTopologyKey:              "kubernetes.io/hostname",
    58  			SecurityContext: &SecurityContext{
    59  				RunAsNonRoot: true,
    60  				RunAsUser:    1000,
    61  				FsGroup:      2000,
    62  			},
    63  			RemoteWrite: nil,
    64  			Resources: &k8s.Resources{
    65  				Limits: corev1.ResourceList{
    66  					corev1.ResourceCPU:    resource.MustParse("600m"),
    67  					corev1.ResourceMemory: resource.MustParse("4Gi"),
    68  				},
    69  				Requests: corev1.ResourceList{
    70  					corev1.ResourceCPU:    resource.MustParse("300m"),
    71  					corev1.ResourceMemory: resource.MustParse("2Gi"),
    72  				},
    73  			},
    74  		},
    75  	}
    76  
    77  	return &Values{
    78  		FullnameOverride: "operated",
    79  		DefaultRules: &DefaultRules{
    80  			Create: true,
    81  			Rules: &Rules{
    82  				Alertmanager:                true,
    83  				Etcd:                        true,
    84  				General:                     true,
    85  				K8S:                         true,
    86  				KubeApiserver:               true,
    87  				KubePrometheusNodeAlerting:  true,
    88  				KubePrometheusNodeRecording: true,
    89  				KubernetesAbsent:            true,
    90  				KubernetesApps:              true,
    91  				KubernetesResources:         true,
    92  				KubernetesStorage:           true,
    93  				KubernetesSystem:            true,
    94  				KubeScheduler:               true,
    95  				Network:                     true,
    96  				Node:                        true,
    97  				Prometheus:                  true,
    98  				PrometheusOperator:          true,
    99  				Time:                        true,
   100  			},
   101  		},
   102  		Global: &Global{
   103  			Rbac: &Rbac{
   104  				Create:     true,
   105  				PspEnabled: true,
   106  			},
   107  		},
   108  		Alertmanager: &DisabledToolServicePerReplica{
   109  			Enabled:           false,
   110  			ServicePerReplica: &DisabledTool{Enabled: false},
   111  			IngressPerReplica: &DisabledTool{Enabled: false},
   112  		},
   113  		Grafana: &DisabledTool{
   114  			Enabled: false,
   115  		},
   116  		KubeAPIServer: &DisabledTool{
   117  			Enabled: false,
   118  		},
   119  		Kubelet: &DisabledTool{
   120  			Enabled: false,
   121  		},
   122  		KubeControllerManager: &DisabledTool{
   123  			Enabled: false,
   124  		},
   125  		CoreDNS: &DisabledTool{
   126  			Enabled: false,
   127  		},
   128  		KubeDNS: &DisabledTool{
   129  			Enabled: false,
   130  		},
   131  		KubeEtcd: &DisabledTool{
   132  			Enabled: false,
   133  		},
   134  		KubeScheduler: &DisabledTool{
   135  			Enabled: false,
   136  		},
   137  		KubeProxy: &DisabledTool{
   138  			Enabled: false,
   139  		},
   140  		KubeStateMetricsScrap: &DisabledTool{
   141  			Enabled: false,
   142  		},
   143  		KubeStateMetrics: &DisabledTool{
   144  			Enabled: false,
   145  		},
   146  		NodeExporter: &DisabledTool{
   147  			Enabled: false,
   148  		},
   149  		PrometheusNodeExporter: &DisabledTool{
   150  			Enabled: false,
   151  		},
   152  		PrometheusOperator: &prometheusoperator.PrometheusOperatorValues{
   153  			Enabled: false,
   154  			TLSProxy: &prometheusoperator.TLSProxy{
   155  				Enabled: false,
   156  				Image: &prometheusoperator.Image{
   157  					Repository: "squareup/ghostunnel",
   158  					Tag:        imageTags["squareup/ghostunnel"],
   159  					PullPolicy: "IfNotPresent",
   160  				},
   161  			},
   162  			AdmissionWebhooks: &prometheusoperator.AdmissionWebhooks{
   163  				FailurePolicy: "Fail",
   164  				Enabled:       false,
   165  				Patch: &prometheusoperator.Patch{
   166  					Enabled: false,
   167  					Image: &prometheusoperator.Image{
   168  						Repository: "jettech/kube-webhook-certgen",
   169  						Tag:        imageTags["jettech/kube-webhook-certgen"],
   170  						PullPolicy: "IfNotPresent",
   171  					},
   172  					PriorityClassName: "",
   173  				},
   174  			},
   175  			ServiceAccount: &prometheusoperator.ServiceAccount{
   176  				Create: false,
   177  			},
   178  			ServiceMonitor: &prometheusoperator.ServiceMonitor{
   179  				Interval:    "",
   180  				SelfMonitor: false,
   181  			},
   182  			CreateCustomResource: true,
   183  			KubeletService: &prometheusoperator.KubeletService{
   184  				Enabled: false,
   185  			},
   186  		},
   187  		Prometheus: promValues,
   188  	}
   189  }