v1alpha1

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Mar 11, 2024 License: AGPL-3.0 Imports: 9 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the tempo v1alpha1 API group. +kubebuilder:object:generate=true +groupName=tempo.grafana.com

Package v1alpha1 contains API Schema definitions for the tempo v1alpha1 API group. +kubebuilder:object:generate=true +groupName=tempo.grafana.com

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "tempo.grafana.com", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

AllStatusConditions lists all possible status conditions.

Functions

This section is empty.

Types

type AuthenticationSpec

type AuthenticationSpec struct {
	// TenantName defines a human readable, unique name of the tenant.
	// The value of this field must be specified in the X-Scope-OrgID header and in the resources field of a ClusterRole to identify the tenant.
	//
	// +required
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tenant Name"
	TenantName string `json:"tenantName"`

	// TenantID defines a universally unique identifier of the tenant.
	// Unlike the tenantName, which must be unique at a given time, the tenantId must be unique over the entire lifetime of the Tempo deployment.
	// Tempo uses this ID to prefix objects in the object storage.
	//
	// +required
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tenant ID"
	TenantID string `json:"tenantId"`

	// OIDC defines the spec for the OIDC tenant's authentication.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="OIDC Configuration"
	OIDC *OIDCSpec `json:"oidc,omitempty"`
}

AuthenticationSpec defines the oidc configuration per tenant for tempo Gateway component.

func (*AuthenticationSpec) DeepCopy

func (in *AuthenticationSpec) DeepCopy() *AuthenticationSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthenticationSpec.

func (*AuthenticationSpec) DeepCopyInto

func (in *AuthenticationSpec) DeepCopyInto(out *AuthenticationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AuthorizationSpec

type AuthorizationSpec struct {
	// Roles defines a set of permissions to interact with a tenant.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Static Roles"
	Roles []RoleSpec `json:"roles"`
	// RoleBindings defines configuration to bind a set of roles to a set of subjects.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Static Role Bindings"
	RoleBindings []RoleBindingsSpec `json:"roleBindings"`
}

AuthorizationSpec defines the opa, role bindings and roles configuration per tenant for tempo Gateway component.

func (*AuthorizationSpec) DeepCopy

func (in *AuthorizationSpec) DeepCopy() *AuthorizationSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthorizationSpec.

func (*AuthorizationSpec) DeepCopyInto

func (in *AuthorizationSpec) DeepCopyInto(out *AuthorizationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ComponentStatus

type ComponentStatus struct {
	// Compactor is a map to the pod status of the compactor pod.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:com.tectonic.ui:podStatuses",displayName="Compactor",order=5
	Compactor PodStatusMap `json:"compactor"`

	// Distributor is a map to the per pod status of the distributor deployment
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:com.tectonic.ui:podStatuses",displayName="Distributor",order=1
	Distributor PodStatusMap `json:"distributor"`

	// Ingester is a map to the per pod status of the ingester statefulset
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:com.tectonic.ui:podStatuses",displayName="Ingester",order=2
	Ingester PodStatusMap `json:"ingester"`

	// Querier is a map to the per pod status of the querier deployment
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:com.tectonic.ui:podStatuses",displayName="Querier",order=3
	Querier PodStatusMap `json:"querier"`

	// QueryFrontend is a map to the per pod status of the query frontend deployment
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:com.tectonic.ui:podStatuses",displayName="Query Frontend",order=4
	QueryFrontend PodStatusMap `json:"queryFrontend"`

	// Gateway is a map to the per pod status of the query frontend deployment
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:com.tectonic.ui:podStatuses",displayName="Gateway",order=6
	Gateway PodStatusMap `json:"gateway"`
}

ComponentStatus defines the status of each component.

func (*ComponentStatus) DeepCopy

func (in *ComponentStatus) DeepCopy() *ComponentStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentStatus.

func (*ComponentStatus) DeepCopyInto

func (in *ComponentStatus) DeepCopyInto(out *ComponentStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConditionReason

type ConditionReason string

ConditionReason defines possible reasons for each condition.

const (
	// ReasonReady defines a healthy tempo instance.
	ReasonReady ConditionReason = "Ready"
	// ReasonInvalidStorageConfig defines that the object storage configuration is invalid (missing or incomplete storage secret).
	ReasonInvalidStorageConfig ConditionReason = "InvalidStorageConfig"
	// ReasonFailedComponents when all/some Tempo components fail to roll out.
	ReasonFailedComponents ConditionReason = "FailedComponents"
	// ReasonPendingComponents when all/some Tempo components pending dependencies.
	ReasonPendingComponents ConditionReason = "PendingComponents"
	// ReasonCouldNotGetOpenShiftBaseDomain when operator cannot get OpenShift base domain, that is used for OAuth redirect URL.
	ReasonCouldNotGetOpenShiftBaseDomain ConditionReason = "CouldNotGetOpenShiftBaseDomain"
	// ReasonCouldNotGetOpenShiftTLSPolicy when operator cannot get OpenShift TLS security cluster policy.
	ReasonCouldNotGetOpenShiftTLSPolicy ConditionReason = "CouldNotGetOpenShiftTLSPolicy"
	// ReasonMissingGatewayTenantSecret when operator cannot get Secret containing sensitive Gateway information.
	ReasonMissingGatewayTenantSecret ConditionReason = "ReasonMissingGatewayTenantSecret"
	// ReasonInvalidTenantsConfiguration when the tenant configuration provided is invalid.
	ReasonInvalidTenantsConfiguration ConditionReason = "InvalidTenantsConfiguration"
	// ReasonFailedReconciliation when the operator failed to reconcile.
	ReasonFailedReconciliation ConditionReason = "FailedReconciliation"
)

type ConditionStatus

type ConditionStatus string

ConditionStatus defines the status of a condition (e.g. ready, failed, pending or configuration error).

const (
	// ConditionReady defines that all components are ready.
	ConditionReady ConditionStatus = "Ready"
	// ConditionFailed defines that one or more components are in a failed state.
	ConditionFailed ConditionStatus = "Failed"
	// ConditionPending defines that one or more components are in a pending state.
	ConditionPending ConditionStatus = "Pending"
	// ConditionConfigurationError defines that there is a configuration error.
	ConditionConfigurationError ConditionStatus = "ConfigurationError"
)

type ExtraConfigSpec added in v0.7.0

type ExtraConfigSpec struct {
	// Tempo defines any extra Tempo configuration, which will be merged with the operator's generated Tempo configuration
	//
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tempo Extra Configurations"
	Tempo apiextensionsv1.JSON `json:"tempo,omitempty"`
}

ExtraConfigSpec defines extra configurations for tempo that will be merged with the operator generated, configurations defined here has precedence and could override generated config.

func (*ExtraConfigSpec) DeepCopy added in v0.7.0

func (in *ExtraConfigSpec) DeepCopy() *ExtraConfigSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraConfigSpec.

func (*ExtraConfigSpec) DeepCopyInto added in v0.7.0

func (in *ExtraConfigSpec) DeepCopyInto(out *ExtraConfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GrafanaConfigSpec added in v0.7.0

type GrafanaConfigSpec struct {
	// CreateDatasource specifies if a Grafana Datasource should be created for Tempo.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Create Datasource for Tempo"
	CreateDatasource bool `json:"createDatasource,omitempty"`

	// InstanceSelector specifies the Grafana instance where the datasource should be created.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Create CreateDatasource for Tempo"
	InstanceSelector metav1.LabelSelector `json:"instanceSelector,omitempty"`
}

GrafanaConfigSpec defines configuration for Grafana.

func (*GrafanaConfigSpec) DeepCopy added in v0.7.0

func (in *GrafanaConfigSpec) DeepCopy() *GrafanaConfigSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GrafanaConfigSpec.

func (*GrafanaConfigSpec) DeepCopyInto added in v0.7.0

func (in *GrafanaConfigSpec) DeepCopyInto(out *GrafanaConfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HashRingSpec added in v0.7.0

type HashRingSpec struct {
	// MemberList configuration spec
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Memberlist Config"
	MemberList MemberListSpec `json:"memberlist,omitempty"`
}

HashRingSpec defines the hash ring configuration.

func (*HashRingSpec) DeepCopy added in v0.7.0

func (in *HashRingSpec) DeepCopy() *HashRingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HashRingSpec.

func (*HashRingSpec) DeepCopyInto added in v0.7.0

func (in *HashRingSpec) DeepCopyInto(out *HashRingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IngestionLimitSpec

type IngestionLimitSpec struct {
	// IngestionBurstSizeBytes defines the burst size (bytes) used in ingestion.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Ingestion Burst Size in Bytes"
	IngestionBurstSizeBytes *int `json:"ingestionBurstSizeBytes,omitempty"`

	// IngestionRateLimitBytes defines the Per-user ingestion rate limit (bytes) used in ingestion.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Ingestion Rate Limit in Bytes"
	IngestionRateLimitBytes *int `json:"ingestionRateLimitBytes,omitempty"`

	// MaxBytesPerTrace defines the maximum number of bytes of an acceptable trace.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Max Bytes per Trace"
	MaxBytesPerTrace *int `json:"maxBytesPerTrace,omitempty"`

	// MaxTracesPerUser defines the maximum number of traces a user can send.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Max Traces per User"
	MaxTracesPerUser *int `json:"maxTracesPerUser,omitempty"`
}

IngestionLimitSpec defines the limits applied at the ingestion path.

func (*IngestionLimitSpec) DeepCopy

func (in *IngestionLimitSpec) DeepCopy() *IngestionLimitSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngestionLimitSpec.

func (*IngestionLimitSpec) DeepCopyInto

func (in *IngestionLimitSpec) DeepCopyInto(out *IngestionLimitSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IngressSpec

type IngressSpec struct {
	// Type defines the type of Ingress for the Jaeger Query UI.
	// Currently ingress, route and none are supported.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Type"
	Type IngressType `json:"type,omitempty"`

	// Annotations defines the annotations of the Ingress object.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Annotations"
	Annotations map[string]string `json:"annotations,omitempty"`

	// Host defines the hostname of the Ingress object.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Host"
	Host string `json:"host,omitempty"`

	// IngressClassName defines the name of an IngressClass cluster resource.
	// Defines which ingress controller serves this ingress resource.
	// +optional
	IngressClassName *string `json:"ingressClassName,omitempty"`

	// Route defines the options for the OpenShift route.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Route Configuration"
	Route RouteSpec `json:"route,omitempty"`
}

IngressSpec defines Jaeger Query Ingress options.

func (*IngressSpec) DeepCopy

func (in *IngressSpec) DeepCopy() *IngressSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressSpec.

func (*IngressSpec) DeepCopyInto

func (in *IngressSpec) DeepCopyInto(out *IngressSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IngressType

type IngressType string

IngressType represents how a service should be exposed (ingress vs route). +kubebuilder:validation:Enum=ingress;route

const (
	// IngressTypeNone specifies that no ingress or route entry should be created.
	IngressTypeNone IngressType = ""
	// IngressTypeIngress specifies that an ingress entry should be created.
	IngressTypeIngress IngressType = "ingress"
	// IngressTypeRoute specifies that a route entry should be created.
	IngressTypeRoute IngressType = "route"
)

type JaegerQueryMonitor added in v0.5.0

type JaegerQueryMonitor struct {
	// Enabled enables the monitor tab in the Jaeger console.
	// The PrometheusEndpoint must be configured to enable this feature.
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enabled",xDescriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	Enabled bool `json:"enabled"`

	// PrometheusEndpoint defines the endpoint to the Prometheus instance that contains the span rate, error, and duration (RED) metrics.
	// For instance on OpenShift this is set to https://thanos-querier.openshift-monitoring.svc.cluster.local:9091
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Prometheus endpoint"
	PrometheusEndpoint string `json:"prometheusEndpoint"`
}

JaegerQueryMonitor defines configuration for the service monitoring tab in the Jaeger console. The monitoring tab uses Prometheus to query span RED metrics. This feature requires running OpenTelemetry collector with spanmetricsconnector - https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/connector/spanmetricsconnector which derives span RED metrics from spans and exports the metrics to Prometheus.

func (*JaegerQueryMonitor) DeepCopy added in v0.5.0

func (in *JaegerQueryMonitor) DeepCopy() *JaegerQueryMonitor

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JaegerQueryMonitor.

func (*JaegerQueryMonitor) DeepCopyInto added in v0.5.0

func (in *JaegerQueryMonitor) DeepCopyInto(out *JaegerQueryMonitor)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JaegerQuerySpec

type JaegerQuerySpec struct {
	// Enabled defines if the Jaeger Query component should be created.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enable Jaeger Query UI",xDescriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	Enabled bool `json:"enabled"`

	// Ingress defines the options for the Jaeger Query ingress.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Jaeger Query UI Ingress Settings"
	Ingress IngressSpec `json:"ingress,omitempty"`

	// MonitorTab defines the monitor tab configuration.
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Jaeger Query UI Monitor Tab Settings"
	MonitorTab JaegerQueryMonitor `json:"monitorTab"`

	// Resources defines resources for this component, this will override the calculated resources derived from total
	//
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources"
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
}

JaegerQuerySpec defines Jaeger Query options.

func (*JaegerQuerySpec) DeepCopy

func (in *JaegerQuerySpec) DeepCopy() *JaegerQuerySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JaegerQuerySpec.

func (*JaegerQuerySpec) DeepCopyInto

func (in *JaegerQuerySpec) DeepCopyInto(out *JaegerQuerySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LimitSpec

type LimitSpec struct {
	// PerTenant is used to define rate limits per tenant.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tenant Limits"
	PerTenant map[string]RateLimitSpec `json:"perTenant,omitempty"`

	// Global is used to define global rate limits.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Global Limit"
	Global RateLimitSpec `json:"global"`
}

LimitSpec defines Global and PerTenant rate limits.

func (*LimitSpec) DeepCopy

func (in *LimitSpec) DeepCopy() *LimitSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitSpec.

func (*LimitSpec) DeepCopyInto

func (in *LimitSpec) DeepCopyInto(out *LimitSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ManagementStateType

type ManagementStateType string

ManagementStateType defines the type for CR management states.

+kubebuilder:validation:Enum=Managed;Unmanaged

const (
	// ManagementStateManaged when the TempoStack custom resource should be
	// reconciled by the operator.
	ManagementStateManaged ManagementStateType = "Managed"

	// ManagementStateUnmanaged when the TempoStack custom resource should not be
	// reconciled by the operator.
	ManagementStateUnmanaged ManagementStateType = "Unmanaged"
)

type MemberListSpec added in v0.7.0

type MemberListSpec struct {
	// EnableIPv6 enables IPv6 support for the memberlist based hash ring.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch",displayName="Enable IPv6"
	EnableIPv6 *bool `json:"enableIPv6,omitempty"`
}

MemberListSpec defines the configuration for the memberlist based hash ring.

func (*MemberListSpec) DeepCopy added in v0.7.0

func (in *MemberListSpec) DeepCopy() *MemberListSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberListSpec.

func (*MemberListSpec) DeepCopyInto added in v0.7.0

func (in *MemberListSpec) DeepCopyInto(out *MemberListSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetricsConfigSpec

type MetricsConfigSpec struct {
	// CreateServiceMonitors specifies if ServiceMonitors should be created for Tempo components.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Create ServiceMonitors for Tempo components"
	CreateServiceMonitors bool `json:"createServiceMonitors,omitempty"`

	// CreatePrometheusRules specifies if Prometheus rules for alerts should be created for Tempo components.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Create PrometheusRules for Tempo components"
	CreatePrometheusRules bool `json:"createPrometheusRules,omitempty"`
}

MetricsConfigSpec defines a metrics config.

func (*MetricsConfigSpec) DeepCopy

func (in *MetricsConfigSpec) DeepCopy() *MetricsConfigSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsConfigSpec.

func (*MetricsConfigSpec) DeepCopyInto

func (in *MetricsConfigSpec) DeepCopyInto(out *MetricsConfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ModeType

type ModeType string

ModeType is the authentication/authorization mode in which Tempo Gateway will be configured.

+kubebuilder:validation:Enum=static;openshift

const (
	// ModeStatic mode asserts the Authorization Spec's Roles and RoleBindings
	// using an in-process OpenPolicyAgent Rego authorizer.
	ModeStatic ModeType = "static"
	// ModeOpenShift mode uses TokenReview API for authentication and subject access review for authorization.
	ModeOpenShift ModeType = "openshift"
)

type MonolithicComponentStatus added in v0.9.0

type MonolithicComponentStatus struct {
	// Tempo is a map of the pod status of the Tempo pods.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="Tempo",order=1,xDescriptors="urn:alm:descriptor:com.tectonic.ui:podStatuses"
	Tempo PodStatusMap `json:"tempo"`
}

MonolithicComponentStatus defines the status of each component.

func (*MonolithicComponentStatus) DeepCopy added in v0.9.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicComponentStatus.

func (*MonolithicComponentStatus) DeepCopyInto added in v0.9.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicIngestionOTLPProtocolsGRPCSpec added in v0.8.0

type MonolithicIngestionOTLPProtocolsGRPCSpec struct {
	// Enabled defines if OTLP over gRPC is enabled.
	// Default: enabled.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:default=true
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enabled",order=1,xDescriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	Enabled bool `json:"enabled"`

	// TLS defines the TLS configuration for OTLP/gRPC ingestion.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="TLS"
	TLS *TLSSpec `json:"tls,omitempty"`
}

MonolithicIngestionOTLPProtocolsGRPCSpec defines the settings for OTLP ingestion over GRPC.

func (*MonolithicIngestionOTLPProtocolsGRPCSpec) DeepCopy added in v0.8.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicIngestionOTLPProtocolsGRPCSpec.

func (*MonolithicIngestionOTLPProtocolsGRPCSpec) DeepCopyInto added in v0.8.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicIngestionOTLPProtocolsHTTPSpec added in v0.8.0

type MonolithicIngestionOTLPProtocolsHTTPSpec struct {
	// Enabled defines if OTLP over HTTP is enabled.
	// Default: enabled.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:default=true
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enabled",order=1,xDescriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	Enabled bool `json:"enabled"`

	// TLS defines the TLS configuration for OTLP/HTTP ingestion.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="TLS"
	TLS *TLSSpec `json:"tls,omitempty"`
}

MonolithicIngestionOTLPProtocolsHTTPSpec defines the settings for OTLP ingestion over HTTP.

func (*MonolithicIngestionOTLPProtocolsHTTPSpec) DeepCopy added in v0.8.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicIngestionOTLPProtocolsHTTPSpec.

func (*MonolithicIngestionOTLPProtocolsHTTPSpec) DeepCopyInto added in v0.8.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicIngestionOTLPSpec added in v0.8.0

type MonolithicIngestionOTLPSpec struct {
	// GRPC defines the OTLP over gRPC configuration.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="gRPC"
	GRPC *MonolithicIngestionOTLPProtocolsGRPCSpec `json:"grpc,omitempty"`

	// HTTP defines the OTLP over HTTP configuration.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="HTTP"
	HTTP *MonolithicIngestionOTLPProtocolsHTTPSpec `json:"http,omitempty"`
}

MonolithicIngestionOTLPSpec defines the settings for OTLP ingestion.

func (*MonolithicIngestionOTLPSpec) DeepCopy added in v0.8.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicIngestionOTLPSpec.

func (*MonolithicIngestionOTLPSpec) DeepCopyInto added in v0.8.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicIngestionSpec added in v0.8.0

type MonolithicIngestionSpec struct {
	// OTLP defines the ingestion configuration for the OTLP protocol.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="OTLP"
	OTLP *MonolithicIngestionOTLPSpec `json:"otlp,omitempty"`
}

MonolithicIngestionSpec defines the ingestion settings.

func (*MonolithicIngestionSpec) DeepCopy added in v0.8.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicIngestionSpec.

func (*MonolithicIngestionSpec) DeepCopyInto added in v0.8.0

func (in *MonolithicIngestionSpec) DeepCopyInto(out *MonolithicIngestionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicJaegerUIIngressSpec added in v0.8.0

type MonolithicJaegerUIIngressSpec struct {
	// Enabled defines if an Ingress object should be created for Jaeger UI.
	//
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enabled",order=1,xDescriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	Enabled bool `json:"enabled"`

	// Annotations defines the annotations of the Ingress object.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Annotations"
	Annotations map[string]string `json:"annotations,omitempty"`

	// Host defines the hostname of the Ingress object.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Hostname"
	Host string `json:"host,omitempty"`

	// IngressClassName defines the name of an IngressClass cluster resource.
	// Defines which ingress controller serves this ingress resource.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Ingress Class Name"
	IngressClassName *string `json:"ingressClassName,omitempty"`
}

MonolithicJaegerUIIngressSpec defines the settings for the Jaeger UI ingress.

func (*MonolithicJaegerUIIngressSpec) DeepCopy added in v0.8.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicJaegerUIIngressSpec.

func (*MonolithicJaegerUIIngressSpec) DeepCopyInto added in v0.8.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicJaegerUIRouteSpec added in v0.8.0

type MonolithicJaegerUIRouteSpec struct {
	// Enabled defines if a Route object should be created for Jaeger UI.
	//
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enabled",order=1,xDescriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	Enabled bool `json:"enabled"`

	// Annotations defines the annotations of the Route object.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Annotations"
	Annotations map[string]string `json:"annotations,omitempty"`

	// Host defines the hostname of the Route object.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Hostname"
	Host string `json:"host,omitempty"`

	// Termination specifies the termination type.
	// Default: edge.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=edge
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="TLS Termination"
	Termination TLSRouteTerminationType `json:"termination,omitempty"`
}

MonolithicJaegerUIRouteSpec defines the settings for the Jaeger UI route.

func (*MonolithicJaegerUIRouteSpec) DeepCopy added in v0.8.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicJaegerUIRouteSpec.

func (*MonolithicJaegerUIRouteSpec) DeepCopyInto added in v0.8.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicJaegerUISpec added in v0.8.0

type MonolithicJaegerUISpec struct {
	// Enabled defines if the Jaeger UI component should be created.
	//
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enabled",order=1,xDescriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	Enabled bool `json:"enabled"`

	// Resources defines the compute resource requirements of the Jaeger UI container.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources",order=2,xDescriptors="urn:alm:descriptor:com.tectonic.ui:resourceRequirements"
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

	// Ingress defines the Ingress configuration for the Jaeger UI.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Ingress",order=3
	Ingress *MonolithicJaegerUIIngressSpec `json:"ingress,omitempty"`

	// Route defines the OpenShift route configuration for the Jaeger UI.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Route",order=4
	Route *MonolithicJaegerUIRouteSpec `json:"route,omitempty"`
}

MonolithicJaegerUISpec defines the settings for the Jaeger UI.

func (*MonolithicJaegerUISpec) DeepCopy added in v0.8.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicJaegerUISpec.

func (*MonolithicJaegerUISpec) DeepCopyInto added in v0.8.0

func (in *MonolithicJaegerUISpec) DeepCopyInto(out *MonolithicJaegerUISpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicObservabilityGrafanaDataSourceSpec added in v0.9.0

type MonolithicObservabilityGrafanaDataSourceSpec struct {
	// Enabled defines if a Grafana data source should be created for this Tempo deployment.
	//
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enabled",order=1,xDescriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	Enabled bool `json:"enabled"`

	// InstanceSelector defines the Grafana instance where the data source should be created.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Instance Selector",xDescriptors="urn:alm:descriptor:com.tectonic.ui:selector:grafana.integreatly.org:v1beta1:Grafana"
	InstanceSelector *metav1.LabelSelector `json:"instanceSelector,omitempty"`
}

MonolithicObservabilityGrafanaDataSourceSpec defines the Grafana data source configuration of the Tempo deployment.

func (*MonolithicObservabilityGrafanaDataSourceSpec) DeepCopy added in v0.9.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicObservabilityGrafanaDataSourceSpec.

func (*MonolithicObservabilityGrafanaDataSourceSpec) DeepCopyInto added in v0.9.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicObservabilityGrafanaSpec added in v0.9.0

type MonolithicObservabilityGrafanaSpec struct {
	// DataSource defines the Grafana data source configuration.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Grafana data source"
	DataSource *MonolithicObservabilityGrafanaDataSourceSpec `json:"dataSource,omitempty"`
}

MonolithicObservabilityGrafanaSpec defines the Grafana configuration of the Tempo deployment.

func (*MonolithicObservabilityGrafanaSpec) DeepCopy added in v0.9.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicObservabilityGrafanaSpec.

func (*MonolithicObservabilityGrafanaSpec) DeepCopyInto added in v0.9.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicObservabilityMetricsPrometheusRulesSpec added in v0.9.0

type MonolithicObservabilityMetricsPrometheusRulesSpec struct {
	// Enabled defines if PrometheusRule objects should be created for this Tempo deployment.
	//
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enabled",order=1,xDescriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	Enabled bool `json:"enabled"`
}

MonolithicObservabilityMetricsPrometheusRulesSpec defines the PrometheusRules settings.

func (*MonolithicObservabilityMetricsPrometheusRulesSpec) DeepCopy added in v0.9.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicObservabilityMetricsPrometheusRulesSpec.

func (*MonolithicObservabilityMetricsPrometheusRulesSpec) DeepCopyInto added in v0.9.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicObservabilityMetricsServiceMonitorsSpec added in v0.9.0

type MonolithicObservabilityMetricsServiceMonitorsSpec struct {
	// Enabled defines if ServiceMonitor objects should be created for this Tempo deployment.
	//
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enabled",order=1,xDescriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	Enabled bool `json:"enabled"`
}

MonolithicObservabilityMetricsServiceMonitorsSpec defines the ServiceMonitor settings.

func (*MonolithicObservabilityMetricsServiceMonitorsSpec) DeepCopy added in v0.9.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicObservabilityMetricsServiceMonitorsSpec.

func (*MonolithicObservabilityMetricsServiceMonitorsSpec) DeepCopyInto added in v0.9.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicObservabilityMetricsSpec added in v0.9.0

type MonolithicObservabilityMetricsSpec struct {
	// ServiceMonitors defines the ServiceMonitor configuration.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Service Monitors"
	ServiceMonitors *MonolithicObservabilityMetricsServiceMonitorsSpec `json:"serviceMonitors,omitempty"`

	// ServiceMonitors defines the PrometheusRule configuration.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Prometheus Rules"
	PrometheusRules *MonolithicObservabilityMetricsPrometheusRulesSpec `json:"prometheusRules,omitempty"`
}

MonolithicObservabilityMetricsSpec defines the metrics settings of the Tempo deployment.

func (*MonolithicObservabilityMetricsSpec) DeepCopy added in v0.9.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicObservabilityMetricsSpec.

func (*MonolithicObservabilityMetricsSpec) DeepCopyInto added in v0.9.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicObservabilitySpec added in v0.9.0

type MonolithicObservabilitySpec struct {
	// Metrics defines the metric configuration of the Tempo deployment.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Metrics"
	Metrics *MonolithicObservabilityMetricsSpec `json:"metrics,omitempty"`

	// Grafana defines the Grafana configuration of the Tempo deployment.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Grafana"
	Grafana *MonolithicObservabilityGrafanaSpec `json:"grafana,omitempty"`
}

MonolithicObservabilitySpec defines the observability configuration of the Tempo deployment.

func (*MonolithicObservabilitySpec) DeepCopy added in v0.9.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicObservabilitySpec.

func (*MonolithicObservabilitySpec) DeepCopyInto added in v0.9.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicSchedulerSpec added in v0.9.0

type MonolithicSchedulerSpec struct {
	// NodeSelector defines which labels are required by a node to schedule the pod onto it.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Node Selector",xDescriptors="urn:alm:descriptor:com.tectonic.ui:advanced"
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Tolerations defines the tolerations of a node to schedule the pod onto it.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tolerations",xDescriptors="urn:alm:descriptor:com.tectonic.ui:advanced"
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Affinity defines the Affinity rules for scheduling pods.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Affinity",xDescriptors="urn:alm:descriptor:com.tectonic.ui:advanced"
	Affinity *corev1.Affinity `json:"affinity,omitempty"`
}

MonolithicSchedulerSpec defines schedule settings for Tempo.

func (*MonolithicSchedulerSpec) DeepCopy added in v0.9.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicSchedulerSpec.

func (*MonolithicSchedulerSpec) DeepCopyInto added in v0.9.0

func (in *MonolithicSchedulerSpec) DeepCopyInto(out *MonolithicSchedulerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicStorageSpec added in v0.8.0

type MonolithicStorageSpec struct {
	// Traces defines the storage configuration for traces.
	//
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Traces"
	Traces MonolithicTracesStorageSpec `json:"traces"`
}

MonolithicStorageSpec defines the storage for the Tempo deployment.

func (*MonolithicStorageSpec) DeepCopy added in v0.8.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicStorageSpec.

func (*MonolithicStorageSpec) DeepCopyInto added in v0.8.0

func (in *MonolithicStorageSpec) DeepCopyInto(out *MonolithicStorageSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicTracesObjectStorageSpec added in v0.8.0

type MonolithicTracesObjectStorageSpec struct {
	// Secret is the name of a Secret containing credentials for accessing object storage.
	// It needs to be in the same namespace as the TempoMonolithic custom resource.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Storage Secret",xDescriptors="urn:alm:descriptor:io.kubernetes:Secret"
	Secret string `json:"secret"`
}

MonolithicTracesObjectStorageSpec defines object storage configuration.

func (*MonolithicTracesObjectStorageSpec) DeepCopy added in v0.8.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicTracesObjectStorageSpec.

func (*MonolithicTracesObjectStorageSpec) DeepCopyInto added in v0.8.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicTracesStorageBackend added in v0.8.0

type MonolithicTracesStorageBackend string

MonolithicTracesStorageBackend defines the backend storage for traces.

+kubebuilder:validation:Enum=memory;pv;azure;gcs;s3

const (
	// MonolithicTracesStorageBackendMemory defines storing traces in a tmpfs (in-memory filesystem).
	MonolithicTracesStorageBackendMemory MonolithicTracesStorageBackend = "memory"
	// MonolithicTracesStorageBackendPV defines storing traces in a Persistent Volume.
	MonolithicTracesStorageBackendPV MonolithicTracesStorageBackend = "pv"
	// MonolithicTracesStorageBackendAzure defines storing traces in Azure Storage.
	MonolithicTracesStorageBackendAzure MonolithicTracesStorageBackend = "azure"
	// MonolithicTracesStorageBackendGCS defines storing traces in Google Cloud Storage.
	MonolithicTracesStorageBackendGCS MonolithicTracesStorageBackend = "gcs"
	// MonolithicTracesStorageBackendS3 defines storing traces in Amazon S3.
	MonolithicTracesStorageBackendS3 MonolithicTracesStorageBackend = "s3"
)

type MonolithicTracesStorageS3Spec added in v0.8.0

type MonolithicTracesStorageS3Spec struct {
	MonolithicTracesObjectStorageSpec `json:",inline"`

	// TLS defines the TLS configuration for Amazon S3.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="TLS"
	TLS *TLSSpec `json:"tls,omitempty"`
}

MonolithicTracesStorageS3Spec defines the Amazon S3 configuration.

func (*MonolithicTracesStorageS3Spec) DeepCopy added in v0.8.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicTracesStorageS3Spec.

func (*MonolithicTracesStorageS3Spec) DeepCopyInto added in v0.8.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonolithicTracesStorageSpec added in v0.8.0

type MonolithicTracesStorageSpec struct {
	// Backend defines the backend for storing traces.
	// Default: memory.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:default=memory
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Storage Backend",order=1
	Backend MonolithicTracesStorageBackend `json:"backend"`

	// Size defines the size of the volume where traces are stored.
	// For in-memory storage, this defines the size of the tmpfs volume.
	// For persistent volume storage, this defines the size of the persistent volume.
	// For object storage, this defines the size of the persistent volume containing the Write-Ahead Log (WAL) of Tempo.
	// Default: 10Gi.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:default="10Gi"
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Size",order=2,xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
	Size *resource.Quantity `json:"size,omitempty"`

	// S3 defines the configuration for Amazon S3.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Amazon S3"
	S3 *MonolithicTracesStorageS3Spec `json:"s3,omitempty"`

	// Azure defines the configuration for Azure Storage.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Azure Storage"
	Azure *MonolithicTracesObjectStorageSpec `json:"azure,omitempty"`

	// GCP defines the configuration for Google Cloud Storage.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Google Cloud Storage"
	GCS *MonolithicTracesObjectStorageSpec `json:"gcs,omitempty"`
}

MonolithicTracesStorageSpec defines the traces storage for the Tempo deployment.

func (*MonolithicTracesStorageSpec) DeepCopy added in v0.8.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicTracesStorageSpec.

func (*MonolithicTracesStorageSpec) DeepCopyInto added in v0.8.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OIDCSpec

type OIDCSpec struct {
	// Secret defines the spec for the clientID, clientSecret and issuerCAPath for tenant's authentication.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tenant Secret"
	Secret *TenantSecretSpec `json:"secret"`
	// IssuerURL defines the URL for issuer.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Issuer URL"
	IssuerURL string `json:"issuerURL"`
	// RedirectURL defines the URL for redirect.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Redirect URL"
	RedirectURL string `json:"redirectURL,omitempty"`
	// Group claim field from ID Token
	//
	// +optional
	// +kubebuilder:validation:Optional
	GroupClaim string `json:"groupClaim,omitempty"`
	// User claim field from ID Token
	//
	// +optional
	// +kubebuilder:validation:Optional
	UsernameClaim string `json:"usernameClaim,omitempty"`
}

OIDCSpec defines the oidc configuration spec for Tempo Gateway component.

func (*OIDCSpec) DeepCopy

func (in *OIDCSpec) DeepCopy() *OIDCSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDCSpec.

func (*OIDCSpec) DeepCopyInto

func (in *OIDCSpec) DeepCopyInto(out *OIDCSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ObjectStorageSecretSpec

type ObjectStorageSecretSpec struct {
	// Type of object storage that should be used
	//
	// +required
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:select:azure","urn:alm:descriptor:com.tectonic.ui:select:gcs","urn:alm:descriptor:com.tectonic.ui:select:s3"},displayName="Object Storage Secret Type"
	Type ObjectStorageSecretType `json:"type"`

	// Name of a secret in the namespace configured for object storage secrets.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:io.kubernetes:Secret",displayName="Object Storage Secret Name"
	Name string `json:"name"`
}

ObjectStorageSecretSpec is a secret reference containing name only, no namespace.

func (*ObjectStorageSecretSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectStorageSecretSpec.

func (*ObjectStorageSecretSpec) DeepCopyInto

func (in *ObjectStorageSecretSpec) DeepCopyInto(out *ObjectStorageSecretSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ObjectStorageSecretType

type ObjectStorageSecretType string

ObjectStorageSecretType defines the type of storage which can be used with the Tempo cluster.

+kubebuilder:validation:Enum=azure;gcs;s3

const (
	// ObjectStorageSecretAzure when using Azure Storage for Tempo storage.
	ObjectStorageSecretAzure ObjectStorageSecretType = "azure"

	// ObjectStorageSecretGCS when using Google Cloud Storage for Tempo storage.
	ObjectStorageSecretGCS ObjectStorageSecretType = "gcs"

	// ObjectStorageSecretS3 when using S3 for Tempo storage.
	ObjectStorageSecretS3 ObjectStorageSecretType = "s3"
)

type ObjectStorageSpec

type ObjectStorageSpec struct {
	// TLS configuration for reaching the object storage endpoint.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="TLS Config"
	TLS TLSSpec `json:"tls,omitempty"`

	// Secret for object storage authentication.
	// Name of a secret in the same namespace as the TempoStack custom resource.
	//
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Object Storage Secret"
	Secret ObjectStorageSecretSpec `json:"secret"`
}

ObjectStorageSpec defines the requirements to access the object storage bucket to persist traces by the ingester component.

func (*ObjectStorageSpec) DeepCopy

func (in *ObjectStorageSpec) DeepCopy() *ObjectStorageSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectStorageSpec.

func (*ObjectStorageSpec) DeepCopyInto

func (in *ObjectStorageSpec) DeepCopyInto(out *ObjectStorageSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ObservabilitySpec

type ObservabilitySpec struct {
	// Metrics defines the metrics configuration for operands.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Metrics Config"
	Metrics MetricsConfigSpec `json:"metrics,omitempty"`

	// Tracing defines a config for operands.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tracing Config"
	Tracing TracingConfigSpec `json:"tracing,omitempty"`

	// Grafana defines the Grafana configuration for operands.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Grafana Config"
	Grafana GrafanaConfigSpec `json:"grafana,omitempty"`
}

ObservabilitySpec defines how telemetry data gets handled.

func (*ObservabilitySpec) DeepCopy

func (in *ObservabilitySpec) DeepCopy() *ObservabilitySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilitySpec.

func (*ObservabilitySpec) DeepCopyInto

func (in *ObservabilitySpec) DeepCopyInto(out *ObservabilitySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PermissionType

type PermissionType string

PermissionType is a Tempo Gateway RBAC permission.

+kubebuilder:validation:Enum=read;write

const (
	// Write gives access to write data to a tenant.
	Write PermissionType = "write"
	// Read gives access to read data from a tenant.
	Read PermissionType = "read"
)

type PodStatusMap

type PodStatusMap map[corev1.PodPhase][]string

PodStatusMap defines the type for mapping pod status to pod name.

func (PodStatusMap) DeepCopy

func (in PodStatusMap) DeepCopy() PodStatusMap

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodStatusMap.

func (PodStatusMap) DeepCopyInto

func (in PodStatusMap) DeepCopyInto(out *PodStatusMap)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type QueryLimit

type QueryLimit struct {
	// MaxBytesPerTagValues defines the maximum size in bytes of a tag-values query.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Max Tags per User"
	MaxBytesPerTagValues *int `json:"maxBytesPerTagValues,omitempty"`

	// DEPRECATED. MaxSearchBytesPerTrace defines the maximum size of search data for a single
	// trace in bytes.
	// default: `0` to disable.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Max Traces per User"
	MaxSearchBytesPerTrace *int `json:"maxSearchBytesPerTrace,omitempty"`

	// MaxSearchDuration defines the maximum allowed time range for a search.
	// If this value is not set, then spec.search.maxDuration is used.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Max Search Duration per User"
	MaxSearchDuration metav1.Duration `json:"maxSearchDuration"`
}

QueryLimit defines query limits.

func (*QueryLimit) DeepCopy

func (in *QueryLimit) DeepCopy() *QueryLimit

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueryLimit.

func (*QueryLimit) DeepCopyInto

func (in *QueryLimit) DeepCopyInto(out *QueryLimit)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RateLimitSpec

type RateLimitSpec struct {
	// Ingestion is used to define ingestion rate limits.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Ingestion Limit"
	Ingestion IngestionLimitSpec `json:"ingestion"`

	// Query is used to define query rate limits.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Query Limit"
	Query QueryLimit `json:"query"`
}

RateLimitSpec defines rate limits for Ingestion and Query components.

func (*RateLimitSpec) DeepCopy

func (in *RateLimitSpec) DeepCopy() *RateLimitSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitSpec.

func (*RateLimitSpec) DeepCopyInto

func (in *RateLimitSpec) DeepCopyInto(out *RateLimitSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Resources

type Resources struct {
	// The total amount of resources for Tempo instance.
	// The operator autonomously splits resources between deployed Tempo components.
	// Only limits are supported, the operator calculates requests automatically.
	// See http://github.com/grafana/tempo/issues/1540.
	//
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resource Requirements"
	Total *corev1.ResourceRequirements `json:"total,omitempty"`
}

Resources defines resources configuration.

func (*Resources) DeepCopy

func (in *Resources) DeepCopy() *Resources

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Resources.

func (*Resources) DeepCopyInto

func (in *Resources) DeepCopyInto(out *Resources)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RetentionConfig

type RetentionConfig struct {
	// Traces defines retention period. Supported parameter suffixes are "s", "m" and "h".
	// example: 336h
	// default: value is 48h.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:text",displayName="Trace Retention Period"
	Traces metav1.Duration `json:"traces"`
}

RetentionConfig defines how long data should be provided.

func (*RetentionConfig) DeepCopy

func (in *RetentionConfig) DeepCopy() *RetentionConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RetentionConfig.

func (*RetentionConfig) DeepCopyInto

func (in *RetentionConfig) DeepCopyInto(out *RetentionConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RetentionSpec

type RetentionSpec struct {
	// PerTenant is used to configure retention per tenant.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="PerTenant Retention"
	PerTenant map[string]RetentionConfig `json:"perTenant,omitempty"`
	// Global is used to configure global retention.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Global Retention"
	Global RetentionConfig `json:"global"`
}

RetentionSpec defines global and per tenant retention configurations.

func (*RetentionSpec) DeepCopy

func (in *RetentionSpec) DeepCopy() *RetentionSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RetentionSpec.

func (*RetentionSpec) DeepCopyInto

func (in *RetentionSpec) DeepCopyInto(out *RetentionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RoleBindingsSpec

type RoleBindingsSpec struct {
	Name     string    `json:"name"`
	Subjects []Subject `json:"subjects"`
	Roles    []string  `json:"roles"`
}

RoleBindingsSpec binds a set of roles to a set of subjects.

func (*RoleBindingsSpec) DeepCopy

func (in *RoleBindingsSpec) DeepCopy() *RoleBindingsSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBindingsSpec.

func (*RoleBindingsSpec) DeepCopyInto

func (in *RoleBindingsSpec) DeepCopyInto(out *RoleBindingsSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RoleSpec

type RoleSpec struct {
	Name        string           `json:"name"`
	Resources   []string         `json:"resources"`
	Tenants     []string         `json:"tenants"`
	Permissions []PermissionType `json:"permissions"`
}

RoleSpec describes a set of permissions to interact with a tenant.

func (*RoleSpec) DeepCopy

func (in *RoleSpec) DeepCopy() *RoleSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleSpec.

func (*RoleSpec) DeepCopyInto

func (in *RoleSpec) DeepCopyInto(out *RoleSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouteSpec

type RouteSpec struct {
	// Termination defines the termination type.
	// The default is "edge".
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="TLS Termination Policy"
	Termination TLSRouteTerminationType `json:"termination,omitempty"`
}

RouteSpec defines OpenShift Route specific options.

func (*RouteSpec) DeepCopy

func (in *RouteSpec) DeepCopy() *RouteSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteSpec.

func (*RouteSpec) DeepCopyInto

func (in *RouteSpec) DeepCopyInto(out *RouteSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SearchSpec

type SearchSpec struct {
	// Limit used for search requests if none is set by the caller (default: 20)
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Limit used for search requests if none is set by the caller, this limit the number of traces returned by the query"
	DefaultResultLimit *int `json:"defaultResultLimit,omitempty"`
	// The maximum allowed time range for a search, default: 0s which means unlimited.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Max search time range allowed"
	MaxDuration metav1.Duration `json:"maxDuration,omitempty"`
	// The maximum allowed value of the limit parameter on search requests. If the search request limit parameter
	// exceeds the value configured here it will be set to the value configured here.
	// The default value of 0 disables this limit.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="The maximum allowed value of the limit parameter on search requests, this determine the max number of traces allowed to be returned"
	MaxResultLimit int `json:"maxResultLimit,omitempty"`
}

SearchSpec specified the global search parameters.

func (*SearchSpec) DeepCopy

func (in *SearchSpec) DeepCopy() *SearchSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SearchSpec.

func (*SearchSpec) DeepCopyInto

func (in *SearchSpec) DeepCopyInto(out *SearchSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Subject

type Subject struct {
	Name string      `json:"name"`
	Kind SubjectKind `json:"kind"`
}

Subject represents a subject that has been bound to a role.

func (*Subject) DeepCopy

func (in *Subject) DeepCopy() *Subject

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.

func (*Subject) DeepCopyInto

func (in *Subject) DeepCopyInto(out *Subject)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SubjectKind

type SubjectKind string

SubjectKind is a kind of Tempo Gateway RBAC subject.

+kubebuilder:validation:Enum=user;group

const (
	// User represents a subject that is a user.
	User SubjectKind = "user"
	// Group represents a subject that is a group.
	Group SubjectKind = "group"
)

type TLSRouteTerminationType

type TLSRouteTerminationType string

TLSRouteTerminationType is used to indicate which TLS settings should be used. +kubebuilder:validation:Enum=insecure;edge;passthrough;reencrypt

const (
	// TLSRouteTerminationTypeInsecure indicates that insecure connections are allowed.
	TLSRouteTerminationTypeInsecure TLSRouteTerminationType = "insecure"
	// TLSRouteTerminationTypeEdge indicates that encryption should be terminated
	// at the edge router.
	TLSRouteTerminationTypeEdge TLSRouteTerminationType = "edge"
	// TLSRouteTerminationTypePassthrough indicates that the destination service is
	// responsible for decrypting traffic.
	TLSRouteTerminationTypePassthrough TLSRouteTerminationType = "passthrough"
	// TLSRouteTerminationTypeReencrypt indicates that traffic will be decrypted on the edge
	// and re-encrypt using a new certificate.
	TLSRouteTerminationTypeReencrypt TLSRouteTerminationType = "reencrypt"
)

type TLSSpec added in v0.8.0

type TLSSpec struct {
	// Enabled defines if TLS is enabled.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enabled",order=1,xDescriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	Enabled bool `json:"enabled"`

	// CA is the name of a ConfigMap containing a CA certificate (service-ca.crt).
	// It needs to be in the same namespace as the Tempo custom resource.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:io.kubernetes:ConfigMap",displayName="CA ConfigMap"
	CA string `json:"caName,omitempty"`

	// Cert is the name of a Secret containing a certificate (tls.crt) and private key (tls.key).
	// It needs to be in the same namespace as the Tempo custom resource.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:io.kubernetes:Secret",displayName="Certificate Secret"
	Cert string `json:"certName,omitempty"`

	// MinVersion defines the minimum acceptable TLS version.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Min TLS Version"
	MinVersion string `json:"minVersion,omitempty"`
}

TLSSpec is the TLS configuration.

func (*TLSSpec) DeepCopy added in v0.8.0

func (in *TLSSpec) DeepCopy() *TLSSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSSpec.

func (*TLSSpec) DeepCopyInto added in v0.8.0

func (in *TLSSpec) DeepCopyInto(out *TLSSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TempoComponentSpec

type TempoComponentSpec struct {
	// Replicas defines the number of replicas to be created for this component.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Component Replicas"
	Replicas *int32 `json:"replicas,omitempty"`

	// NodeSelector defines the simple form of the node-selection constraint.
	//
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Node Selector"
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Tolerations defines component-specific pod tolerations.
	//
	// +optional
	// +listType=atomic
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tolerations"
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Resources defines resources for this component, this will override the calculated resources derived from total
	//
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources"
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
}

TempoComponentSpec defines specific schedule settings for tempo components.

func (*TempoComponentSpec) DeepCopy

func (in *TempoComponentSpec) DeepCopy() *TempoComponentSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempoComponentSpec.

func (*TempoComponentSpec) DeepCopyInto

func (in *TempoComponentSpec) DeepCopyInto(out *TempoComponentSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TempoDistributorSpec added in v0.6.0

type TempoDistributorSpec struct {
	// TempoComponentSpec is embedded to extend this definition with further options.
	//
	// Currently, there is no way to inline this field.
	// See: https://github.com/golang/go/issues/6213
	//
	// +optional
	// +kubebuilder:validation:Optional
	TempoComponentSpec `json:"component,omitempty"`

	// TLS defines TLS configuration for distributor receivers
	//
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="TLS"
	TLS TLSSpec `json:"tls,omitempty"`
}

TempoDistributorSpec defines the template of all requirements to configure scheduling of Tempo distributor component to be deployed.

func (*TempoDistributorSpec) DeepCopy added in v0.6.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempoDistributorSpec.

func (*TempoDistributorSpec) DeepCopyInto added in v0.6.0

func (in *TempoDistributorSpec) DeepCopyInto(out *TempoDistributorSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TempoGatewaySpec

type TempoGatewaySpec struct {
	// TempoComponentSpec is embedded to extend this definition with further options.
	//
	// Currently there is no way to inline this field.
	// See: https://github.com/golang/go/issues/6213
	//
	// +optional
	// +kubebuilder:validation:Optional
	TempoComponentSpec `json:"component,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enabled",xDescriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
	Enabled bool `json:"enabled"`

	// Ingress defines gateway Ingress options.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Jaeger gateway Ingress Settings"
	Ingress IngressSpec `json:"ingress,omitempty"`
}

TempoGatewaySpec extends TempoComponentSpec with gateway parameters.

func (*TempoGatewaySpec) DeepCopy

func (in *TempoGatewaySpec) DeepCopy() *TempoGatewaySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempoGatewaySpec.

func (*TempoGatewaySpec) DeepCopyInto

func (in *TempoGatewaySpec) DeepCopyInto(out *TempoGatewaySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TempoMonolithic added in v0.8.0

type TempoMonolithic struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   TempoMonolithicSpec   `json:"spec,omitempty"`
	Status TempoMonolithicStatus `json:"status,omitempty"`
}

TempoMonolithic manages a Tempo deployment in monolithic mode.

+operator-sdk:csv:customresourcedefinitions:displayName="TempoMonolithic",resources={{ConfigMap,v1},{Service,v1},{StatefulSet,v1},{Ingress,v1},{Route,v1}}

func (*TempoMonolithic) DeepCopy added in v0.8.0

func (in *TempoMonolithic) DeepCopy() *TempoMonolithic

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempoMonolithic.

func (*TempoMonolithic) DeepCopyInto added in v0.8.0

func (in *TempoMonolithic) DeepCopyInto(out *TempoMonolithic)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TempoMonolithic) DeepCopyObject added in v0.8.0

func (in *TempoMonolithic) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*TempoMonolithic) Default added in v0.8.0

func (r *TempoMonolithic) Default()

Default sets all default values in a central place, instead of setting it at every place where the value is accessed. NOTE: This function is called inside the Reconcile loop, NOT in the webhook. We want to keep the CR as minimal as the user configures it, and not modify it in any way (except for upgrades).

type TempoMonolithicList added in v0.8.0

type TempoMonolithicList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []TempoMonolithic `json:"items"`
}

TempoMonolithicList contains a list of TempoMonolithic.

func (*TempoMonolithicList) DeepCopy added in v0.8.0

func (in *TempoMonolithicList) DeepCopy() *TempoMonolithicList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempoMonolithicList.

func (*TempoMonolithicList) DeepCopyInto added in v0.8.0

func (in *TempoMonolithicList) DeepCopyInto(out *TempoMonolithicList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TempoMonolithicList) DeepCopyObject added in v0.8.0

func (in *TempoMonolithicList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TempoMonolithicSpec added in v0.8.0

type TempoMonolithicSpec struct {
	// Storage defines the storage configuration.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Storage",order=1
	Storage *MonolithicStorageSpec `json:"storage,omitempty"`

	// Ingestion defines the trace ingestion configuration.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Ingestion",order=2
	Ingestion *MonolithicIngestionSpec `json:"ingestion,omitempty"`

	// JaegerUI defines the Jaeger UI configuration.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Jaeger UI",order=3
	JaegerUI *MonolithicJaegerUISpec `json:"jaegerui,omitempty"`

	// Observability defines the observability configuration of the Tempo deployment.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Observability",order=4
	Observability *MonolithicObservabilitySpec `json:"observability,omitempty"`

	// Resources defines the compute resource requirements of the Tempo container.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources",order=5,xDescriptors="urn:alm:descriptor:com.tectonic.ui:resourceRequirements"
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

	// ManagementState defines whether this instance is managed by the operator or self-managed.
	// Default: Managed.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Management State",xDescriptors="urn:alm:descriptor:com.tectonic.ui:advanced"
	Management ManagementStateType `json:"management,omitempty"`

	// ExtraConfig defines any extra (overlay) configuration of components.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Extra Configuration",xDescriptors="urn:alm:descriptor:com.tectonic.ui:advanced"
	ExtraConfig *ExtraConfigSpec `json:"extraConfig,omitempty"`

	Scheduler *MonolithicSchedulerSpec `json:",inline"`
}

TempoMonolithicSpec defines the desired state of TempoMonolithic.

func (*TempoMonolithicSpec) DeepCopy added in v0.8.0

func (in *TempoMonolithicSpec) DeepCopy() *TempoMonolithicSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempoMonolithicSpec.

func (*TempoMonolithicSpec) DeepCopyInto added in v0.8.0

func (in *TempoMonolithicSpec) DeepCopyInto(out *TempoMonolithicSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TempoMonolithicStatus added in v0.8.0

type TempoMonolithicStatus struct {
	// Components provides summary of all Tempo pod status, grouped per component.
	//
	// +kubebuilder:validation:Optional
	Components MonolithicComponentStatus `json:"components,omitempty"`

	// Conditions of the Tempo deployment health.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:io.kubernetes.conditions"
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

TempoMonolithicStatus defines the observed state of TempoMonolithic.

func (*TempoMonolithicStatus) DeepCopy added in v0.8.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempoMonolithicStatus.

func (*TempoMonolithicStatus) DeepCopyInto added in v0.8.0

func (in *TempoMonolithicStatus) DeepCopyInto(out *TempoMonolithicStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TempoQueryFrontendSpec

type TempoQueryFrontendSpec struct {
	// TempoComponentSpec is embedded to extend this definition with further options.
	//
	// Currently there is no way to inline this field.
	// See: https://github.com/golang/go/issues/6213
	//
	// +optional
	// +kubebuilder:validation:Optional
	TempoComponentSpec `json:"component,omitempty"`

	// JaegerQuery defines options specific to the Jaeger Query component.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Jaeger Query Settings"
	JaegerQuery JaegerQuerySpec `json:"jaegerQuery"`
}

TempoQueryFrontendSpec extends TempoComponentSpec with frontend specific parameters.

func (*TempoQueryFrontendSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempoQueryFrontendSpec.

func (*TempoQueryFrontendSpec) DeepCopyInto

func (in *TempoQueryFrontendSpec) DeepCopyInto(out *TempoQueryFrontendSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TempoStack

type TempoStack struct {
	Status            TempoStackStatus `json:"status,omitempty"`
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              TempoStackSpec `json:"spec,omitempty"`
}

TempoStack manages a Tempo deployment in microservices mode.

+operator-sdk:csv:customresourcedefinitions:displayName="TempoStack",resources={{ConfigMap,v1},{ServiceAccount,v1},{Service,v1},{Secret,v1},{StatefulSet,v1},{Deployment,v1},{Ingress,v1},{Route,v1}} +kubebuilder:resource:shortName=tempo;tempos

func (*TempoStack) DeepCopy

func (in *TempoStack) DeepCopy() *TempoStack

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempoStack.

func (*TempoStack) DeepCopyInto

func (in *TempoStack) DeepCopyInto(out *TempoStack)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TempoStack) DeepCopyObject

func (in *TempoStack) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TempoStackList

type TempoStackList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []TempoStack `json:"items"`
}

TempoStackList contains a list of TempoStack.

func (*TempoStackList) DeepCopy

func (in *TempoStackList) DeepCopy() *TempoStackList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempoStackList.

func (*TempoStackList) DeepCopyInto

func (in *TempoStackList) DeepCopyInto(out *TempoStackList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TempoStackList) DeepCopyObject

func (in *TempoStackList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TempoStackSpec

type TempoStackSpec struct {
	// ManagementState defines if the CR should be managed by the operator or not.
	// Default is managed.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:default:=Managed
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:select:Managed","urn:alm:descriptor:com.tectonic.ui:select:Unmanaged"},displayName="Management State"
	ManagementState ManagementStateType `json:"managementState,omitempty"`

	// LimitSpec is used to limit ingestion and querying rates.
	//
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Ingestion and Querying Ratelimiting"
	LimitSpec LimitSpec `json:"limits,omitempty"`

	// StorageClassName for PVCs used by ingester. Defaults to nil (default storage class in the cluster).
	//
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="StorageClassName for PVCs"
	StorageClassName *string `json:"storageClassName,omitempty"`

	// Resources defines resources configuration.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources"
	Resources Resources `json:"resources,omitempty"`

	// StorageSize for PVCs used by ingester. Defaults to 10Gi.
	//
	// +optional
	// +kubebuilder:default="10Gi"
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Storage size for PVCs"
	StorageSize resource.Quantity `json:"storageSize,omitempty"`

	// Images defines the image for each container.
	//
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Container Images"
	Images v1alpha1.ImagesSpec `json:"images,omitempty"`

	// Storage defines the spec for the object storage endpoint to store traces.
	// User is required to create secret and supply it.
	//
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Object Storage"
	Storage ObjectStorageSpec `json:"storage"`

	// NOTE: currently this field is not considered.
	// Retention period defined by dataset.
	// User can specify how long data should be stored.
	//
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Retention Period"
	Retention RetentionSpec `json:"retention,omitempty"`

	// ServiceAccount defines the service account to use for all tempo components.
	//
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Service Account"
	ServiceAccount string `json:"serviceAccount,omitempty"`

	// SearchSpec control the configuration for the search capabilities.
	//
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Search configuration options"
	SearchSpec SearchSpec `json:"search,omitempty"`

	// HashRing defines the spec for the distributed hash ring configuration.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:advanced",displayName="Hash Ring"
	HashRing HashRingSpec `json:"hashRing,omitempty"`

	// Template defines requirements for a set of tempo components.
	//
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tempo Component Templates"
	Template TempoTemplateSpec `json:"template,omitempty"`

	// ReplicationFactor is used to define how many component replicas should exist.
	//
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Replication Factor"
	ReplicationFactor int `json:"replicationFactor,omitempty"`

	// Tenants defines the per-tenant authentication and authorization spec.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tenants Configuration"
	Tenants *TenantsSpec `json:"tenants,omitempty"`

	// ObservabilitySpec defines how telemetry data gets handled.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Observability"
	Observability ObservabilitySpec `json:"observability,omitempty"`

	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Extra Configurations"
	ExtraConfig *ExtraConfigSpec `json:"extraConfig,omitempty"`
}

TempoStackSpec defines the desired state of TempoStack.

func (*TempoStackSpec) DeepCopy

func (in *TempoStackSpec) DeepCopy() *TempoStackSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempoStackSpec.

func (*TempoStackSpec) DeepCopyInto

func (in *TempoStackSpec) DeepCopyInto(out *TempoStackSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TempoStackStatus

type TempoStackStatus struct {
	// Version of the Tempo Operator.
	// +optional
	OperatorVersion string `json:"operatorVersion,omitempty"`

	// Version of the managed Tempo instance.
	// +optional
	TempoVersion string `json:"tempoVersion,omitempty"`

	// DEPRECATED. Version of the Tempo Query component used.
	// +optional
	TempoQueryVersion string `json:"tempoQueryVersion,omitempty"`

	// Components provides summary of all Tempo pod status grouped
	// per component.
	//
	// +optional
	// +kubebuilder:validation:Optional
	Components ComponentStatus `json:"components,omitempty"`

	// Conditions of the Tempo deployment health.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:io.kubernetes.conditions"
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

TempoStackStatus defines the observed state of TempoStack.

func (*TempoStackStatus) DeepCopy

func (in *TempoStackStatus) DeepCopy() *TempoStackStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempoStackStatus.

func (*TempoStackStatus) DeepCopyInto

func (in *TempoStackStatus) DeepCopyInto(out *TempoStackStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TempoTemplateSpec

type TempoTemplateSpec struct {
	// Distributor defines the distributor component spec.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Distributor pods"
	Distributor TempoDistributorSpec `json:"distributor,omitempty"`

	// Ingester defines the ingester component spec.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Ingester pods"
	Ingester TempoComponentSpec `json:"ingester,omitempty"`

	// Compactor defines the tempo compactor component spec.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Compactor pods"
	Compactor TempoComponentSpec `json:"compactor,omitempty"`

	// Querier defines the querier component spec.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Querier pods"
	Querier TempoComponentSpec `json:"querier,omitempty"`

	// TempoQueryFrontendSpec defines the query frontend spec.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Query Frontend pods"
	QueryFrontend TempoQueryFrontendSpec `json:"queryFrontend,omitempty"`

	// Gateway defines the tempo gateway spec.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Gateway pods"
	Gateway TempoGatewaySpec `json:"gateway,omitempty"`
}

TempoTemplateSpec defines the template of all requirements to configure scheduling of all Tempo components to be deployed.

func (*TempoTemplateSpec) DeepCopy

func (in *TempoTemplateSpec) DeepCopy() *TempoTemplateSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempoTemplateSpec.

func (*TempoTemplateSpec) DeepCopyInto

func (in *TempoTemplateSpec) DeepCopyInto(out *TempoTemplateSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TenantSecretSpec

type TenantSecretSpec struct {
	// Name of a secret in the namespace configured for tenant secrets.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:io.kubernetes:Secret",displayName="Tenant Secret Name"
	Name string `json:"name"`
}

TenantSecretSpec is a secret reference containing name only for a secret living in the same namespace as the (Tempo) TempoStack custom resource.

func (*TenantSecretSpec) DeepCopy

func (in *TenantSecretSpec) DeepCopy() *TenantSecretSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TenantSecretSpec.

func (*TenantSecretSpec) DeepCopyInto

func (in *TenantSecretSpec) DeepCopyInto(out *TenantSecretSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TenantsSpec

type TenantsSpec struct {
	// Mode defines the multitenancy mode.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:default:=static
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:select:static","urn:alm:descriptor:com.tectonic.ui:select:openshift"},displayName="Mode"
	Mode ModeType `json:"mode"`

	// Authentication defines the tempo-gateway component authentication configuration spec per tenant.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Authentication"
	Authentication []AuthenticationSpec `json:"authentication,omitempty"`
	// Authorization defines the tempo-gateway component authorization configuration spec per tenant.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Authorization"
	Authorization *AuthorizationSpec `json:"authorization,omitempty"`
}

TenantsSpec defines the mode, authentication and authorization configuration of the tempo gateway component.

func (*TenantsSpec) DeepCopy

func (in *TenantsSpec) DeepCopy() *TenantsSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TenantsSpec.

func (*TenantsSpec) DeepCopyInto

func (in *TenantsSpec) DeepCopyInto(out *TenantsSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TracingConfigSpec

type TracingConfigSpec struct {
	// SamplingFraction defines the sampling ratio. Valid values are 0 to 1.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Sampling Fraction"
	SamplingFraction string `json:"sampling_fraction,omitempty"`

	// JaegerAgentEndpoint defines the jaeger endpoint data gets send to.
	//
	// +optional
	// +kubebuilder:validation:Optional
	// +kubebuilder:default:="localhost:6831"
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Jaeger-Agent-Endpoint"
	JaegerAgentEndpoint string `json:"jaeger_agent_endpoint,omitempty"`
}

TracingConfigSpec defines a tracing config including endpoints and sampling.

func (*TracingConfigSpec) DeepCopy

func (in *TracingConfigSpec) DeepCopy() *TracingConfigSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracingConfigSpec.

func (*TracingConfigSpec) DeepCopyInto

func (in *TracingConfigSpec) DeepCopyInto(out *TracingConfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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