v1beta2

package
v0.29.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 18, 2020 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RewriteFunc

func RewriteFunc(desiredTree *tree.Tree, newMasterkey string) (secrets map[string]*secret.Secret, err error)

func SecretsFunc

func SecretsFunc(desiredTree *tree.Tree) (secrets map[string]*secret.Secret, err error)

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"`
	//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"`
}

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 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"`
}

type LogCollection

type LogCollection struct {
	//Flag if tool should be deployed
	//@default: false
	Deploy bool `json:"deploy" yaml:"deploy"`
	//Spec to define how the persistence should be handled
	FluentdPVC *storage.Spec `json:"fluentdStorage,omitempty" yaml:"fluentdStorage,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 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"`
}

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"`
}

type Metadata

type Metadata struct {
	//Name of the overlay
	Name string `json:"name,omitempty" yaml:"name,omitempty"`
	//Namespace as information, has currently no influence for the applied resources
	Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
}

type MetricCollection

type MetricCollection struct {
	//Flag if tool should be deployed
	//@default: false
	Deploy bool `json:"deploy" yaml:"deploy"`
}

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"`
}

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"`
}

type NodeMetricsExporter

type NodeMetricsExporter struct {
	//Flag if tool should be deployed
	//@default: false
	Deploy bool `json:"deploy" yaml:"deploy"`
}

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 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"`
}

type SecretKeySelector

type SecretKeySelector struct {
	//Name of the existing secret
	Name string `json:"name" yaml:"name"`
	//Name of the key with the value in the existing secret
	Key string `json:"key" yaml:"key"`
}

type SystemdMetricsExporter

type SystemdMetricsExporter struct {
	//Flag if tool should be deployed
	//@default: false
	Deploy bool `json:"deploy" yaml:"deploy"`
}

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"`
}

func ParseToolset

func ParseToolset(desiredTree *tree.Tree) (*Toolset, error)

type ToolsetMetadata

type ToolsetMetadata struct {
	APIVersion string    `json:"apiVersion,omitempty" yaml:"apiVersion,omitempty"`
	Kind       string    `json:"kind,omitempty" yaml:"kind,omitempty"`
	Metadata   *Metadata `json:"metadata,omitempty" yaml:"metadata,omitempty"`
}

type ToolsetSpec

type ToolsetSpec struct {
	//Version of BOOM which should be reconciled
	BoomVersion string `json:"boomVersion,omitempty" yaml:"boomVersion,omitempty"`
	//Relative folder path where the currentstate is written to
	ForceApply bool `json:"forceApply,omitempty" yaml:"forceApply,omitempty"`
	//Flag if --force should be used by apply of resources
	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"`
}

ToolsetSpec: BOOM reconciles itself if a boomVersion is defined, if no boomVersion is defined there is no reconciling.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL