Documentation
¶
Index ¶
- func GetSecretsMap(desiredKind *Toolset) map[string]*secret.Secret
- type APIGateway
- type AmbassadorService
- type Apply
- type BasicAuth
- type Boom
- type Caching
- type Component
- type Fluentd
- type KubeMetricsExporter
- type LogCollection
- type Logs
- type LogsPersisting
- type Metadata
- type MetricCollection
- type Metrics
- type MetricsPersisting
- type MetricsServer
- type NodeMetricsExporter
- type Port
- type RelabelConfig
- type RemoteWrite
- type SecretKeySelector
- type SystemdMetricsExporter
- type Toolset
- type ToolsetMetadata
- type ToolsetSpec
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type APIGateway ¶
type APIGateway struct {
//Flag if tool should be deployed
//@default: false
Deploy bool `json:"deploy" yaml:"deploy"`
//Number of replicas used for deployment
//@default: 1
ReplicaCount int `json:"replicaCount,omitempty" yaml:"replicaCount,omitempty"`
//Pod scheduling constrains
Affinity *k8s.Affinity `json:"affinity,omitempty" yaml:"affinity,omitempty"`
//Service definition for ambassador
Service *AmbassadorService `json:"service,omitempty" yaml:"service,omitempty"`
//Activate the dev portal mapping
ActivateDevPortal bool `json:"activateDevPortal,omitempty" yaml:"activateDevPortal,omitempty"`
//NodeSelector for deployment
NodeSelector map[string]string `json:"nodeSelector,omitempty" yaml:"nodeSelector,omitempty"`
//Tolerations to run ambassador on nodes
Tolerations k8s.Tolerations `json:"tolerations,omitempty" yaml:"tolerations,omitempty"`
//Resource requirements
Resources *k8s.Resources `json:"resources,omitempty" yaml:"resources,omitempty"`
//Caching options
Caching *Caching `json:"caching,omitempty" yaml:"caching,omitempty"`
//Enable gRPC Web
//@default: false
GRPCWeb bool `json:"grpcWeb,omitempty" yaml:"grpcWeb,omitempty"`
//Enable proxy protocol
//@default: true
ProxyProtocol *bool `json:"proxyProtocol,omitempty" yaml:"proxyProtocol,omitempty"`
}
type AmbassadorService ¶
type AmbassadorService struct {
//Kubernetes service type
Type string `json:"type,omitempty" yaml:"type,omitempty"`
//IP when service is a loadbalancer with a fixed IP
LoadBalancerIP string `json:"loadBalancerIP,omitempty" yaml:"loadBalancerIP,omitempty"`
//Port definitions for the service
Ports []*Port `json:"ports,omitempty" yaml:"ports,omitempty"`
}
type Apply ¶
type Apply struct {
//Flag if tool should be deployed
//@default: false
Deploy bool `json:"deploy,omitempty" yaml:"deploy,omitempty"`
//Relative path of folder in cloned git repository which should be applied
Folder string `json:"folder,omitempty" yaml:"folder,omitempty"`
}
Apply: When the folder contains a kustomization.yaml-file the subfolders will be ignored. Otherwise all files inclusive the files contained by the subfolder will be applied if deploy=true, with deploy=false all will be deleted.
type BasicAuth ¶
type BasicAuth struct {
//Username to push metrics to remote prometheus
Username *SecretKeySelector `json:"username" yaml:"username"`
//Password to push metrics to remote prometheus
Password *SecretKeySelector `json:"password" yaml:"password"`
}
type Boom ¶
type Boom struct {
//Version of BOOM which should be reconciled
Version string `json:"version,omitempty" yaml:"version,omitempty"`
//NodeSelector for boom deployment
NodeSelector map[string]string `json:"nodeSelector,omitempty" yaml:"nodeSelector,omitempty"`
//Tolerations to run boom on nodes
Tolerations k8s.Tolerations `json:"tolerations,omitempty" yaml:"tolerations,omitempty"`
//Resource requirements
Resources *k8s.Resources `json:"resources,omitempty" yaml:"resources,omitempty"`
//Use this registry to pull the BOOM image from
//@default: ghcr.io
CustomImageRegistry string `json:"customImageRegistry,omitempty" yaml:"customImageRegistry,omitempty"`
}
type Component ¶
type Component struct {
//NodeSelector for deployment
NodeSelector map[string]string `json:"nodeSelector,omitempty" yaml:"nodeSelector,omitempty"`
//Tolerations to run fluentbit on nodes
Tolerations k8s.Tolerations `json:"tolerations,omitempty" yaml:"tolerations,omitempty"`
//Resource requirements
Resources *k8s.Resources `json:"resources,omitempty" yaml:"resources,omitempty"`
}
type Fluentd ¶
type Fluentd struct {
*Component `json:",inline" yaml:",inline"`
//Spec to define how the persistence should be handled
PVC *storage.Spec `json:"pvc,omitempty" yaml:"pvc,omitempty"`
//Replicas number of fluentd instances
//@default: 1
Replicas *int `json:"replicas,omitempty" yaml:"replicas,omitempty"`
}
type KubeMetricsExporter ¶
type KubeMetricsExporter struct {
//Flag if tool should be deployed
//@default: false
Deploy bool `json:"deploy" yaml:"deploy"`
//Number of replicas used for deployment
//@default: 1
ReplicaCount int `json:"replicaCount,omitempty" yaml:"replicaCount,omitempty"`
//Pod scheduling constrains
Affinity *k8s.Affinity `json:"affinity,omitempty" yaml:"affinity,omitempty"`
//NodeSelector for deployment
NodeSelector map[string]string `json:"nodeSelector,omitempty" yaml:"nodeSelector,omitempty"`
//Tolerations to run kube state metrics exporter on nodes
Tolerations k8s.Tolerations `json:"tolerations,omitempty" yaml:"tolerations,omitempty"`
//Resource requirements
Resources *k8s.Resources `json:"resources,omitempty" yaml:"resources,omitempty"`
}
type LogCollection ¶
type LogCollection struct {
//Flag if tool should be deployed
//@default: false
Deploy bool `json:"deploy" yaml:"deploy"`
//Fluentd Specs
Fluentd *Fluentd `json:"fluentd,omitempty" yaml:"fluentd,omitempty"`
//Fluentbit Specs
Fluentbit *Component `json:"fluentbit,omitempty" yaml:"fluentbit,omitempty"`
//Logging operator Specs
Operator *Component `json:"operator,omitempty" yaml:"operator,omitempty"`
//ClusterOutputs used by BOOM managed flows. BOOM managed Loki doesn't need to be specified
ClusterOutputs []string `json:"clusterOutputs,omitempty" yaml:"clusterOutputs,omitempty"`
//Outputs used by BOOM managed flows. BOOM managed Loki doesn't need to be specified
Outputs []string `json:"outputs,omitempty" yaml:"outputs,omitempty"`
//Watch these namespaces
WatchNamespaces []string `json:"watchNamespaces,omitempty" yaml:"watchNamespaces,omitempty"`
}
type Logs ¶
type Logs struct {
//Bool if logs will get persisted for ambassador
Ambassador bool `json:"ambassador"`
//Bool if logs will get persisted for grafana
Grafana bool `json:"grafana"`
//Bool if logs will get persisted for argo-cd
Argocd bool `json:"argocd"`
//Bool if logs will get persisted for kube-state-metrics
KubeStateMetrics bool `json:"kube-state-metrics" yaml:"kube-state-metrics"`
//Bool if logs will get persisted for prometheus-node-exporter
PrometheusNodeExporter bool `json:"prometheus-node-exporter" yaml:"prometheus-node-exporter"`
//Bool if logs will get persisted for prometheus-operator
PrometheusOperator bool `json:"prometheus-operator" yaml:"prometheus-operator"`
//Bool if logs will get persisted for Prometheus-Systemd-Exporter
PrometheusSystemdExporter bool `json:"prometheus-systemd-exporter" yaml:"prometheus-systemd-exporter"`
//Bool if logs will get persisted for logging-operator
LoggingOperator bool `json:"logging-operator" yaml:"logging-operator"`
//Bool if logs will get persisted for loki
Loki bool `json:"loki"`
//Bool if logs will get persisted for prometheus
Prometheus bool `json:"prometheus"`
//Bool if logs will get persisted for the metrics-secret
MetricsServer bool `json:"metrics-server" yaml:"metrics-server"`
}
Logs: When the logs spec is nil all logs will get persisted in loki.
type LogsPersisting ¶
type LogsPersisting struct {
//Flag if tool should be deployed
//@default: false
Deploy bool `json:"deploy" yaml:"deploy"`
//Spec to define which logs will get persisted
//@default: nil
Logs *Logs `json:"logs,omitempty" yaml:"logs,omitempty"`
//Spec to define how the persistence should be handled
//@default: nil
Storage *storage.Spec `json:"storage,omitempty" yaml:"storage,omitempty"`
//Flag if loki-output should be a clusteroutput instead a output crd
//@default: false
ClusterOutput bool `json:"clusterOutput,omitempty" yaml:"clusterOutput,omitempty"`
//NodeSelector for statefulset
NodeSelector map[string]string `json:"nodeSelector,omitempty" yaml:"nodeSelector,omitempty"`
//Tolerations to run loki on nodes
Tolerations k8s.Tolerations `json:"tolerations,omitempty" yaml:"tolerations,omitempty"`
//Resource requirements
Resources *k8s.Resources `json:"resources,omitempty" yaml:"resources,omitempty"`
}
type MetricCollection ¶
type MetricCollection struct {
//Flag if tool should be deployed
//@default: false
Deploy bool `json:"deploy" yaml:"deploy"`
//NodeSelector for deployment
NodeSelector map[string]string `json:"nodeSelector,omitempty" yaml:"nodeSelector,omitempty"`
//Tolerations to run prometheus-operator on nodes
Tolerations k8s.Tolerations `json:"tolerations,omitempty" yaml:"tolerations,omitempty"`
//Resource requirements
Resources *k8s.Resources `json:"resources,omitempty" yaml:"resources,omitempty"`
}
type Metrics ¶
type Metrics struct {
//Bool if metrics should get scraped from ambassador
Ambassador bool `json:"ambassador"`
//Bool if metrics should get scraped from argo-cd
Argocd bool `json:"argocd"`
//Bool if metrics should get scraped from kube-state-metrics
KubeStateMetrics bool `json:"kube-state-metrics" yaml:"kube-state-metrics"`
//Bool if metrics should get scraped from prometheus-node-exporter
PrometheusNodeExporter bool `json:"prometheus-node-exporter" yaml:"prometheus-node-exporter"`
//Bool if metrics should get scraped from prometheus-systemd-exporter
PrometheusSystemdExporter bool `json:"prometheus-systemd-exporter" yaml:"prometheus-systemd-exporter"`
//Bool if metrics should get scraped from kube-api-server
APIServer bool `json:"api-server" yaml:"api-server"`
//Bool if metrics should get scraped from prometheus-operator
PrometheusOperator bool `json:"prometheus-operator" yaml:"prometheus-operator"`
//Bool if metrics should get scraped from logging-operator
LoggingOperator bool `json:"logging-operator" yaml:"logging-operator"`
//Bool if metrics should get scraped from loki
Loki bool `json:"loki"`
//Bool if metrics should get scraped from boom
Boom bool `json:"boom" yaml:"boom"`
//Bool if metrics should get scraped from orbiter
Orbiter bool `json:"orbiter" yaml:"orbiter"`
//Bool if metrics should get scraped from zitadel
Zitadel bool `json:"zitadel" yaml:"zitadel"`
}
Metrics: When the metrics spec is nil all metrics will get scraped.
type MetricsPersisting ¶
type MetricsPersisting struct {
//Flag if tool should be deployed
//@default: false
Deploy bool `json:"deploy" yaml:"deploy"`
//Spec to define which metrics should get scraped
//@default: nil
Metrics *Metrics `json:"metrics,omitempty" yaml:"metrics,omitempty"`
//Spec to define how the persistence should be handled
//@default: nil
Storage *storage.Spec `json:"storage,omitempty" yaml:"storage,omitempty"`
//Configuration to write to remote prometheus
RemoteWrite *RemoteWrite `json:"remoteWrite,omitempty" yaml:"remoteWrite,omitempty"`
//Static labels added to metrics
ExternalLabels map[string]string `json:"externalLabels,omitempty" yaml:"externalLabels,omitempty"`
//NodeSelector for statefulset
NodeSelector map[string]string `json:"nodeSelector,omitempty" yaml:"nodeSelector,omitempty"`
//Tolerations to run prometheus on nodes
Tolerations k8s.Tolerations `json:"tolerations,omitempty" yaml:"tolerations,omitempty"`
//Resource requirements
Resources *k8s.Resources `json:"resources,omitempty" yaml:"resources,omitempty"`
}
type MetricsServer ¶
type MetricsServer struct {
//Flag if tool should be deployed
//@default: false
Deploy bool `json:"deploy" yaml:"deploy"`
}
type NodeMetricsExporter ¶
type Port ¶
type Port struct {
//Name of the Port
Name string `json:"name,omitempty" yaml:"name,omitempty"`
//Port number
Port uint16 `json:"port,omitempty" yaml:"port,omitempty"`
//Targetport in-cluster
TargetPort uint16 `json:"targetPort,omitempty" yaml:"targetPort,omitempty"`
//Used port on node
NodePort uint16 `json:"nodePort,omitempty" yaml:"nodePort,omitempty"`
}
type RelabelConfig ¶
type RelabelConfig struct {
//The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions.
SourceLabels []string `json:"sourceLabels,omitempty" yaml:"sourceLabels,omitempty"`
//Separator placed between concatenated source label values. default is ';'.
Separator string `json:"separator,omitempty" yaml:"separator,omitempty"`
//Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available.
TargetLabel string `json:"targetLabel,omitempty" yaml:"targetLabel,omitempty"`
//Regular expression against which the extracted value is matched. Default is '(.*)'
Regex string `json:"regex,omitempty" yaml:"regex,omitempty"`
//Modulus to take of the hash of the source label values.
Modulus string `json:"modulus,omitempty" yaml:"modulus,omitempty"`
//Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1'
Replacement string `json:"replacement,omitempty" yaml:"replacement,omitempty"`
//Action to perform based on regex matching. Default is 'replace'
Action string `json:"action,omitempty" yaml:"action,omitempty"`
}
type RemoteWrite ¶
type RemoteWrite struct {
//URL of the endpoint of the remote prometheus
URL string `json:"url" yaml:"url"`
//Basic-auth-configuration to push metrics to remote prometheus
BasicAuth *BasicAuth `json:"basicAuth,omitempty" yaml:"basicAuth,omitempty"`
//RelabelConfigs for remote write
RelabelConfigs []*RelabelConfig `json:"relabelConfigs,omitempty" yaml:"relabelConfigs,omitempty"`
}
type SecretKeySelector ¶
type SystemdMetricsExporter ¶
type Toolset ¶
type Toolset struct {
//Version of the used API
APIVersion string `json:"apiVersion,omitempty" yaml:"apiVersion,omitempty"`
//Kind for the standard CRD
Kind string `json:"kind,omitempty" yaml:"kind,omitempty"`
//Metadata for the CRD
Metadata *Metadata `json:"metadata,omitempty" yaml:"metadata,omitempty"`
//Specification for the Toolset
Spec *ToolsetSpec `json:"spec,omitempty" yaml:"spec,omitempty"`
}
type ToolsetMetadata ¶
type ToolsetSpec ¶
type ToolsetSpec struct {
//Boom self reconciling specs
Boom *Boom `json:"boom,omitempty" yaml:"boom,omitempty"`
//Flag if --force should be used by apply of resources
ForceApply bool `json:"forceApply,omitempty" yaml:"forceApply,omitempty"`
//Relative folder path where the currentstate is written to
CurrentStateFolder string `json:"currentStatePath,omitempty" yaml:"currentStatePath,omitempty"`
//Spec for the yaml-files applied before the applications, for example used secrets
PreApply *Apply `json:"preApply,omitempty" yaml:"preApply,omitempty"`
//Spec for the yaml-files applied after the applications, for example additional crds for the applications
PostApply *Apply `json:"postApply,omitempty" yaml:"postApply,omitempty"`
//Spec for the Prometheus-Operator
MetricCollection *MetricCollection `json:"metricCollection,omitempty" yaml:"metricCollection,omitempty"`
//Spec for the Banzaicloud Logging-Operator
LogCollection *LogCollection `json:"logCollection,omitempty" yaml:"logCollection,omitempty"`
//Spec for the Prometheus-Node-Exporter
NodeMetricsExporter *NodeMetricsExporter `json:"nodeMetricsExporter,omitempty" yaml:"nodeMetricsExporter,omitempty"`
//Spec for the Prometheus-Systemd-Exporter
SystemdMetricsExporter *SystemdMetricsExporter `json:"systemdMetricsExporter,omitempty" yaml:"systemdMetricsExporter,omitempty"`
//Spec for the Grafana
Monitoring *monitoring.Monitoring `json:"monitoring,omitempty" yaml:"monitoring,omitempty"`
//Spec for the Ambassador
APIGateway *APIGateway `json:"apiGateway,omitempty" yaml:"apiGateway,omitempty"`
//Spec for the Kube-State-Metrics
KubeMetricsExporter *KubeMetricsExporter `json:"kubeMetricsExporter,omitempty" yaml:"kubeMetricsExporter,omitempty"`
//Spec for the Argo-CD
Reconciling *reconciling.Reconciling `json:"reconciling,omitempty" yaml:"reconciling,omitempty"`
//Spec for the Prometheus instance
MetricsPersisting *MetricsPersisting `json:"metricsPersisting,omitempty" yaml:"metricsPersisting,omitempty"`
//Spec for the Loki instance
LogsPersisting *LogsPersisting `json:"logsPersisting,omitempty" yaml:"logsPersisting,omitempty"`
//Spec for Metrics-Server
MetricsServer *MetricsServer `json:"metricsServer,omitempty" yaml:"metricsServer,omitempty"`
}
ToolsetSpec: BOOM reconciles itself if a boomVersion is defined, if no boomVersion is defined there is no reconciling.
Source Files
¶
Click to show internal directories.
Click to hide internal directories.