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

     1  package helm
     2  
     3  import (
     4  	prometheusoperatorhelm "github.com/caos/orbos/internal/operator/boom/application/applications/metriccollection/helm"
     5  	"github.com/caos/orbos/pkg/kubernetes/k8s"
     6  )
     7  
     8  type Ingress struct {
     9  	Enabled     bool              `yaml:"enabled"`
    10  	Annotations map[string]string `yaml:"annotations"`
    11  	Labels      map[string]string `yaml:"labels"`
    12  	Hosts       []interface{}     `yaml:"hosts"`
    13  	Path        string            `yaml:"path"`
    14  	TLS         []interface{}     `yaml:"tls"`
    15  }
    16  
    17  type Dashboards struct {
    18  	Enabled bool   `yaml:"enabled"`
    19  	Label   string `yaml:"label"`
    20  }
    21  
    22  type Datasources struct {
    23  	Enabled                             bool              `yaml:"enabled"`
    24  	DefaultDatasourceEnabled            bool              `yaml:"defaultDatasourceEnabled"`
    25  	Annotations                         map[string]string `yaml:"annotations"`
    26  	CreatePrometheusReplicasDatasources bool              `yaml:"createPrometheusReplicasDatasources"`
    27  	Label                               string            `yaml:"label"`
    28  }
    29  
    30  type ServiceMonitor struct {
    31  	Interval          string        `yaml:"interval"`
    32  	SelfMonitor       bool          `yaml:"selfMonitor"`
    33  	MetricRelabelings []interface{} `yaml:"metricRelabelings"`
    34  	Relabelings       []interface{} `yaml:"relabelings"`
    35  }
    36  
    37  type Sidecar struct {
    38  	Dashboards  *Dashboards  `yaml:"dashboards"`
    39  	Datasources *Datasources `yaml:"datasources"`
    40  }
    41  type DashboardProviders struct {
    42  	Providers *Providersyaml `yaml:"dashboardproviders.yaml"`
    43  }
    44  type Providersyaml struct {
    45  	APIVersion int64       `yaml:"apiVersion"`
    46  	Providers  []*Provider `yaml:"providers"`
    47  }
    48  type Provider struct {
    49  	Name            string            `yaml:"name"`
    50  	OrgID           int               `yaml:"ordId"`
    51  	Folder          string            `yaml:"folder,omitempty"`
    52  	Type            string            `yaml:"type"`
    53  	DisableDeletion bool              `yaml:"disableDeletion"`
    54  	Editable        bool              `yaml:"editable"`
    55  	Options         map[string]string `yaml:"options"`
    56  }
    57  
    58  type Admin struct {
    59  	ExistingSecret string `yaml:"existingSecret"`
    60  	UserKey        string `yaml:"userKey"`
    61  	PasswordKey    string `yaml:"passwordKey"`
    62  }
    63  
    64  type Service struct {
    65  	Labels map[string]string `yaml:"labels,omitempty"`
    66  }
    67  
    68  type Persistence struct {
    69  	Type             string   `yaml:"type"`
    70  	Enabled          bool     `yaml:"enabled"`
    71  	AccessModes      []string `yaml:"accessModes"`
    72  	Size             string   `yaml:"size"`
    73  	StorageClassName string   `yaml:"storageClassName"`
    74  	Finalizers       []string `yaml:"finalizers"`
    75  }
    76  
    77  type Ini struct {
    78  	Paths       map[string]string      `yaml:"paths,omitempty"`
    79  	Analytics   map[string]bool        `yaml:"analytics,omitempty"`
    80  	Log         map[string]string      `yaml:"log,omitempty"`
    81  	GrafanaNet  map[string]interface{} `yaml:"grafana_net,omitempty"`
    82  	AuthGoogle  map[string]string      `yaml:"auth.google,omitempty"`
    83  	AuthGitlab  map[string]string      `yaml:"auth.gitlab,omitempty"`
    84  	AuthGithub  map[string]string      `yaml:"auth.github,omitempty"`
    85  	AuthGeneric map[string]string      `yaml:"auth.generic_oauth,omitempty"`
    86  }
    87  
    88  type Datasource struct {
    89  	Name      string `yaml:"name"`
    90  	Type      string `yaml:"type"`
    91  	URL       string `yaml:"url"`
    92  	Access    string `yaml:"access"`
    93  	IsDefault bool   `yaml:"isDefault"`
    94  }
    95  
    96  type TestFramework struct {
    97  	Enabled         bool   `yaml:"enabled"`
    98  	Image           string `yaml:"image"`
    99  	Tag             string `yaml:"tag"`
   100  	SecurityContext struct {
   101  	} `yaml:"securityContext"`
   102  }
   103  type Image struct {
   104  	Repository string `yaml:"repository"`
   105  	Tag        string `yaml:"tag"`
   106  	PullPolicy string `yaml:"pullPolicy"`
   107  }
   108  type GrafanaValues struct {
   109  	FullnameOverride         string              `yaml:"fullnameOverride,omitempty"`
   110  	Enabled                  bool                `yaml:"enabled"`
   111  	DefaultDashboardsEnabled bool                `yaml:"defaultDashboardsEnabled"`
   112  	AdminUser                string              `yaml:"adminUser"`
   113  	AdminPassword            string              `yaml:"adminPassword"`
   114  	Admin                    *Admin              `yaml:"admin"`
   115  	Ingress                  *Ingress            `yaml:"ingress"`
   116  	Sidecar                  *Sidecar            `yaml:"sidecar"`
   117  	ExtraConfigmapMounts     []interface{}       `yaml:"extraConfigmapMounts"`
   118  	AdditionalDataSources    []*Datasource       `yaml:"additionalDataSources"`
   119  	ServiceMonitor           *ServiceMonitor     `yaml:"serviceMonitor"`
   120  	DashboardProviders       *DashboardProviders `yaml:"dashboardProviders,omitempty"`
   121  	DashboardsConfigMaps     map[string]string   `yaml:"dashboardsConfigMaps,omitempty"`
   122  	Ini                      *Ini                `yaml:"grafana.ini,omitempty"`
   123  	Persistence              *Persistence        `yaml:"persistence,omitempty"`
   124  	TestFramework            *TestFramework      `yaml:"testFramework,omitempty"`
   125  	Plugins                  []string            `yaml:"plugins,omitempty"`
   126  	Image                    *Image              `yaml:"image,omitempty"`
   127  	Env                      map[string]string   `yaml:"env,omitempty"`
   128  	Service                  *Service            `yaml:"service,omitempty"`
   129  	Labels                   map[string]string   `yaml:"labels,omitempty"`
   130  	PodLabels                map[string]string   `yaml:"podLabels,omitempty"`
   131  	NodeSelector             map[string]string   `yaml:"nodeSelector,omitempty"`
   132  	Tolerations              k8s.Tolerations     `yaml:"tolerations,omitempty"`
   133  	Resources                *k8s.Resources      `yaml:"resources,omitempty"`
   134  }
   135  
   136  type Rules struct {
   137  	Alertmanager                bool `yaml:"alertmanager"`
   138  	Etcd                        bool `yaml:"etcd"`
   139  	General                     bool `yaml:"general"`
   140  	K8S                         bool `yaml:"k8s"`
   141  	KubeApiserver               bool `yaml:"kubeApiserver"`
   142  	KubePrometheusNodeAlerting  bool `yaml:"kubePrometheusNodeAlerting"`
   143  	KubePrometheusNodeRecording bool `yaml:"kubePrometheusNodeRecording"`
   144  	KubernetesAbsent            bool `yaml:"kubernetesAbsent"`
   145  	KubernetesApps              bool `yaml:"kubernetesApps"`
   146  	KubernetesResources         bool `yaml:"kubernetesResources"`
   147  	KubernetesStorage           bool `yaml:"kubernetesStorage"`
   148  	KubernetesSystem            bool `yaml:"kubernetesSystem"`
   149  	KubeScheduler               bool `yaml:"kubeScheduler"`
   150  	Network                     bool `yaml:"network"`
   151  	Node                        bool `yaml:"node"`
   152  	Prometheus                  bool `yaml:"prometheus"`
   153  	PrometheusOperator          bool `yaml:"prometheusOperator"`
   154  	Time                        bool `yaml:"time"`
   155  }
   156  
   157  type DefaultRules struct {
   158  	Create      bool              `yaml:"create"`
   159  	Rules       *Rules            `yaml:"rules,omitempty"`
   160  	Labels      map[string]string `yaml:"labels,omitempty"`
   161  	Annotations map[string]string `yaml:"annotations,omitempty"`
   162  }
   163  
   164  type Values struct {
   165  	DefaultRules              *DefaultRules                                    `yaml:"defaultRules,omitempty"`
   166  	Global                    *Global                                          `yaml:"global,omitempty"`
   167  	KubeTargetVersionOverride string                                           `yaml:"kubeTargetVersionOverride,omitempty"`
   168  	NameOverride              string                                           `yaml:"nameOverride,omitempty"`
   169  	FullnameOverride          string                                           `yaml:"fullnameOverride,omitempty"`
   170  	CommonLabels              map[string]string                                `yaml:"commonLabels,omitempty"`
   171  	Alertmanager              *DisabledToolServicePerReplica                   `yaml:"alertmanager,omitempty"`
   172  	Grafana                   *GrafanaValues                                   `yaml:"grafana,omitempty"`
   173  	KubeAPIServer             *DisabledTool                                    `yaml:"kubeApiServer,omitempty"`
   174  	Kubelet                   *DisabledTool                                    `yaml:"kubelet,omitempty"`
   175  	KubeControllerManager     *DisabledTool                                    `yaml:"kubeControllerManager,omitempty"`
   176  	CoreDNS                   *DisabledTool                                    `yaml:"coreDns,omitempty"`
   177  	KubeDNS                   *DisabledTool                                    `yaml:"kubeDns,omitempty"`
   178  	KubeEtcd                  *DisabledTool                                    `yaml:"kubeEtcd,omitempty"`
   179  	KubeScheduler             *DisabledTool                                    `yaml:"kubeScheduler,omitempty"`
   180  	KubeProxy                 *DisabledTool                                    `yaml:"kubeProxy,omitempty"`
   181  	KubeStateMetricsScrap     *DisabledTool                                    `yaml:"kubeStateMetrics,omitempty"`
   182  	KubeStateMetrics          *DisabledTool                                    `yaml:"kube-state-metrics,omitempty"`
   183  	NodeExporter              *DisabledTool                                    `yaml:"nodeExporter,omitempty"`
   184  	PrometheusNodeExporter    *DisabledTool                                    `yaml:"prometheus-node-exporter,omitempty"`
   185  	PrometheusOperator        *prometheusoperatorhelm.PrometheusOperatorValues `yaml:"prometheusOperator,omitempty"`
   186  	Prometheus                *DisabledToolServicePerReplica                   `yaml:"prometheus,omitempty"`
   187  }
   188  
   189  type Global struct {
   190  	Rbac             *Rbac         `yaml:"rbac,omitempty"`
   191  	ImagePullSecrets []interface{} `yaml:"imagePullSecrets,omitempty"`
   192  }
   193  
   194  type Rbac struct {
   195  	Create     bool `yaml:"create,omitempty"`
   196  	PspEnabled bool `yaml:"pspEnabled,omitempty"`
   197  }
   198  
   199  type DisabledTool struct {
   200  	Enabled bool `yaml:"enabled"`
   201  }
   202  
   203  type DisabledToolServicePerReplica struct {
   204  	Enabled           bool
   205  	ServicePerReplica *DisabledTool `yaml:"servicePerReplica"`
   206  	IngressPerReplica *DisabledTool `yaml:"ingressPerReplica"`
   207  }