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

     1  package helm
     2  
     3  import (
     4  	"github.com/caos/orbos/pkg/kubernetes/k8s"
     5  )
     6  
     7  type Rules struct {
     8  	Alertmanager                bool `yaml:"alertmanager"`
     9  	Etcd                        bool `yaml:"etcd"`
    10  	General                     bool `yaml:"general"`
    11  	K8S                         bool `yaml:"k8s"`
    12  	KubeApiserver               bool `yaml:"kubeApiserver"`
    13  	KubePrometheusNodeAlerting  bool `yaml:"kubePrometheusNodeAlerting"`
    14  	KubePrometheusNodeRecording bool `yaml:"kubePrometheusNodeRecording"`
    15  	KubernetesAbsent            bool `yaml:"kubernetesAbsent"`
    16  	KubernetesApps              bool `yaml:"kubernetesApps"`
    17  	KubernetesResources         bool `yaml:"kubernetesResources"`
    18  	KubernetesStorage           bool `yaml:"kubernetesStorage"`
    19  	KubernetesSystem            bool `yaml:"kubernetesSystem"`
    20  	KubeScheduler               bool `yaml:"kubeScheduler"`
    21  	Network                     bool `yaml:"network"`
    22  	Node                        bool `yaml:"node"`
    23  	Prometheus                  bool `yaml:"prometheus"`
    24  	PrometheusOperator          bool `yaml:"prometheusOperator"`
    25  	Time                        bool `yaml:"time"`
    26  }
    27  
    28  type DefaultRules struct {
    29  	Create      bool              `yaml:"create"`
    30  	Rules       *Rules            `yaml:"rules"`
    31  	Labels      map[string]string `yaml:"labels"`
    32  	Annotations map[string]string `yaml:"annotations"`
    33  }
    34  
    35  type Global struct {
    36  	Rbac             *Rbac         `yaml:"rbac"`
    37  	ImagePullSecrets []interface{} `yaml:"imagePullSecrets"`
    38  }
    39  
    40  type Rbac struct {
    41  	Create     bool `yaml:"create"`
    42  	PspEnabled bool `yaml:"pspEnabled"`
    43  }
    44  
    45  type DisabledTool struct {
    46  	Enabled bool `yaml:"enabled"`
    47  }
    48  
    49  type TLSProxy struct {
    50  	Enabled   bool        `yaml:"enabled"`
    51  	Image     *Image      `yaml:"image"`
    52  	Resources interface{} `yaml:"resources"`
    53  }
    54  
    55  type Image struct {
    56  	Repository string `yaml:"repository"`
    57  	Tag        string `yaml:"tag"`
    58  	PullPolicy string `yaml:"pullPolicy"`
    59  }
    60  
    61  type Patch struct {
    62  	Enabled           bool              `yaml:"enabled"`
    63  	Image             *Image            `yaml:"image"`
    64  	PriorityClassName string            `yaml:"priorityClassName"`
    65  	PodAnnotations    map[string]string `yaml:"podAnnotations"`
    66  	NodeSelector      map[string]string `yaml:"nodeSelector"`
    67  }
    68  
    69  type AdmissionWebhooks struct {
    70  	FailurePolicy string `yaml:"failurePolicy"`
    71  	Enabled       bool   `yaml:"enabled"`
    72  	Patch         *Patch `yaml:"patch"`
    73  }
    74  
    75  type ServiceAccount struct {
    76  	Create bool   `yaml:"create"`
    77  	Name   string `yaml:"name"`
    78  }
    79  
    80  type Service struct {
    81  	Annotations              map[string]string `yaml:"annotations"`
    82  	Labels                   map[string]string `yaml:"labels"`
    83  	ClusterIP                string            `yaml:"clusterIP"`
    84  	NodePort                 int               `yaml:"nodePort"`
    85  	NodePortTLS              int               `yaml:"nodePortTls"`
    86  	AdditionalPorts          []interface{}     `yaml:"additionalPorts"`
    87  	LoadBalancerIP           string            `yaml:"loadBalancerIP"`
    88  	LoadBalancerSourceRanges []interface{}     `yaml:"loadBalancerSourceRanges"`
    89  	Type                     string            `yaml:"type"`
    90  	ExternalIPs              []interface{}     `yaml:"externalIPs"`
    91  }
    92  
    93  type KubeletService struct {
    94  	Enabled   bool   `yaml:"enabled"`
    95  	Namespace string `yaml:"namespace"`
    96  }
    97  
    98  type ServiceMonitor struct {
    99  	Interval          string        `yaml:"interval"`
   100  	SelfMonitor       bool          `yaml:"selfMonitor"`
   101  	MetricRelabelings []interface{} `yaml:"metricRelabelings"`
   102  	Relabelings       []interface{} `yaml:"relabelings"`
   103  }
   104  
   105  type SecurityContext struct {
   106  	RunAsNonRoot bool `yaml:"runAsNonRoot"`
   107  	RunAsUser    int  `yaml:"runAsUser"`
   108  }
   109  
   110  type PrometheusOperatorValues struct {
   111  	Enabled                       bool               `yaml:"enabled"`
   112  	TLSProxy                      *TLSProxy          `yaml:"tlsProxy"`
   113  	AdmissionWebhooks             *AdmissionWebhooks `yaml:"admissionWebhooks"`
   114  	DenyNamespaces                []string           `yaml:"denyNamespaces"`
   115  	ServiceAccount                *ServiceAccount    `yaml:"serviceAccount"`
   116  	Service                       *Service           `yaml:"service"`
   117  	CreateCustomResource          bool               `yaml:"createCustomResource"`
   118  	CrdAPIGroup                   string             `yaml:"crdApiGroup"`
   119  	CleanupCustomResource         bool               `yaml:"cleanupCustomResource"`
   120  	PodLabels                     map[string]string  `yaml:"podLabels"`
   121  	PodAnnotations                map[string]string  `yaml:"podAnnotations"`
   122  	KubeletService                *KubeletService    `yaml:"kubeletService"`
   123  	ServiceMonitor                *ServiceMonitor    `yaml:"serviceMonitor"`
   124  	NodeSelector                  map[string]string  `yaml:"nodeSelector"`
   125  	Tolerations                   k8s.Tolerations    `yaml:"tolerations"`
   126  	Affinity                      struct{}           `yaml:"affinity"`
   127  	SecurityContext               *SecurityContext   `yaml:"securityContext"`
   128  	Image                         *Image             `yaml:"image"`
   129  	ConfigmapReloadImage          *Image             `yaml:"configmapReloadImage"`
   130  	PrometheusConfigReloaderImage *Image             `yaml:"prometheusConfigReloaderImage"`
   131  	ConfigReloaderCPU             string             `yaml:"configReloaderCpu"`
   132  	ConfigReloaderMemory          string             `yaml:"configReloaderMemory"`
   133  	HyperkubeImage                *Image             `yaml:"hyperkubeImage"`
   134  	Resources                     *k8s.Resources     `yaml:"resources"`
   135  }
   136  
   137  type DisabledToolServicePerReplica struct {
   138  	Enabled           bool
   139  	ServicePerReplica *DisabledTool `yaml:"servicePerReplica"`
   140  	IngressPerReplica *DisabledTool `yaml:"ingressPerReplica"`
   141  }
   142  
   143  type Values struct {
   144  	NameOverride              string                         `yaml:"nameOverride,omitempty"`
   145  	FullnameOverride          string                         `yaml:"fullnameOverride,omitempty"`
   146  	CommonLabels              map[string]string              `yaml:"commonLabels"`
   147  	DefaultRules              *DefaultRules                  `yaml:"defaultRules"`
   148  	AdditionalPrometheusRules []interface{}                  `yaml:"additionalPrometheusRules"`
   149  	Global                    *Global                        `yaml:"global"`
   150  	Alertmanager              *DisabledToolServicePerReplica `yaml:"alertmanager"`
   151  	Grafana                   *DisabledTool                  `yaml:"grafana"`
   152  	KubeAPIServer             *DisabledTool                  `yaml:"kubeApiServer"`
   153  	Kubelet                   *DisabledTool                  `yaml:"kubelet"`
   154  	KubeControllerManager     *DisabledTool                  `yaml:"kubeControllerManager"`
   155  	CoreDNS                   *DisabledTool                  `yaml:"coreDns"`
   156  	KubeDNS                   *DisabledTool                  `yaml:"kubeDns"`
   157  	KubeEtcd                  *DisabledTool                  `yaml:"kubeEtcd"`
   158  	KubeScheduler             *DisabledTool                  `yaml:"kubeScheduler"`
   159  	KubeProxy                 *DisabledTool                  `yaml:"kubeProxy"`
   160  	KubeStateMetricsScrap     *DisabledTool                  `yaml:"kubeStateMetrics"`
   161  	KubeStateMetrics          *DisabledTool                  `yaml:"kube-state-metrics"`
   162  	NodeExporter              *DisabledTool                  `yaml:"nodeExporter"`
   163  	PrometheusNodeExporter    *DisabledTool                  `yaml:"prometheus-node-exporter"`
   164  	PrometheusOperator        *PrometheusOperatorValues      `yaml:"prometheusOperator"`
   165  	Prometheus                *DisabledToolServicePerReplica `yaml:"prometheus"`
   166  }