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 ¶
- Variables
- func ValidateStorageSecret(tempo TempoStack, storageSecret corev1.Secret) field.ErrorList
- func ValidateTenantConfigs(tempo TempoStack) error
- type AuthenticationSpec
- type AuthorizationSpec
- type ComponentStatus
- type ConditionReason
- type ConditionStatus
- type Defaulter
- type IngestionLimitSpec
- type IngressSpec
- type IngressType
- type JaegerQuerySpec
- type LimitSpec
- type ManagementStateType
- type MetricsConfigSpec
- type ModeType
- type OIDCSpec
- type ObjectStorageSecretSpec
- type ObjectStorageSecretType
- type ObjectStorageSpec
- type ObjectStorageTLSSpec
- type ObservabilitySpec
- type PermissionType
- type PodStatusMap
- type QueryLimit
- type RateLimitSpec
- type Resources
- type RetentionConfig
- type RetentionSpec
- type RoleBindingsSpec
- type RoleSpec
- type RouteSpec
- type SearchSpec
- type Subject
- type SubjectKind
- type TLSRouteTerminationType
- type TempoComponentSpec
- type TempoGatewaySpec
- type TempoQueryFrontendSpec
- type TempoStack
- type TempoStackList
- type TempoStackSpec
- type TempoStackStatus
- type TempoTemplateSpec
- type TenantSecretSpec
- type TenantsSpec
- type TracingConfigSpec
Constants ¶
This section is empty.
Variables ¶
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 )
var AllStatusConditions = []ConditionStatus{ConditionReady, ConditionFailed, ConditionPending, ConditionConfigurationError}
AllStatusConditions lists all possible status conditions.
Functions ¶
func ValidateStorageSecret ¶
func ValidateStorageSecret(tempo TempoStack, storageSecret corev1.Secret) field.ErrorList
ValidateStorageSecret validates the object storage secret required for tempo.
func ValidateTenantConfigs ¶
func ValidateTenantConfigs(tempo TempoStack) error
ValidateTenantConfigs validates the tenants mode specification.
Types ¶
type AuthenticationSpec ¶
type AuthenticationSpec struct { // TenantName defines the name of the tenant. // The value of this field should be sent in X-Scope-OrgID header to identify the tenant. // // +required // +kubebuilder:validation:Required // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tenant Name" TenantName string `json:"tenantName"` // TenantID defines the id of the tenant. // // +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,omitempty"` // 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,omitempty"` // 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,omitempty"` // 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,omitempty"` // 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,omitempty"` // 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="Query Frontend",order=4 Gateway PodStatusMap `json:"gateway,omitempty"` }
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 Defaulter ¶
type Defaulter struct {
// contains filtered or unexported fields
}
Defaulter implements the CustomDefaulter interface.
func NewDefaulter ¶
func NewDefaulter(ctrlConfig v1alpha1.ProjectConfig) *Defaulter
NewDefaulter creates a new instance of Defaulter, which implements functions for setting defaults on the Tempo CR.
func (*Defaulter) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Defaulter.
func (*Defaulter) DeepCopyInto ¶
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 is the name of an IngressClass cluster resource. Ingress // controller implementations use this field to know whether they should be // serving this Ingress resource. // +optional IngressClassName *string `json:"ingressClassName,omitempty"` // Route defines OpenShift Route specific options. // // +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 JaegerQuerySpec ¶
type JaegerQuerySpec struct { // Enabled is used to define if Jaeger Query component should be created. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enable Jaeger Query UI" Enabled bool `json:"enabled"` // Ingress defines Jaeger Query Ingress options. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Jaeger Query UI Ingress Settings" Ingress IngressSpec `json:"ingress,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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitSpec.
func (*LimitSpec) DeepCopyInto ¶
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 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
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDCSpec.
func (*OIDCSpec) DeepCopyInto ¶
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 // +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 ¶
func (in *ObjectStorageSecretSpec) DeepCopy() *ObjectStorageSecretSpec
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 *ObjectStorageTLSSpec `json:"tls,omitempty"` // Secret for object storage authentication. // Name of a secret in the same namespace as the tempo 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 ObjectStorageTLSSpec ¶
type ObjectStorageTLSSpec struct { // CA is the name of a ConfigMap containing a CA certificate. // It needs to be in the same namespace as the Tempo custom resource. // // +optional // +kubebuilder:validation:optional // +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:io.kubernetes:ConfigMap",displayName="CA ConfigMap Name" CA string `json:"caName,omitempty"` }
ObjectStorageTLSSpec is the TLS configuration for reaching the object storage endpoint.
func (*ObjectStorageTLSSpec) DeepCopy ¶
func (in *ObjectStorageTLSSpec) DeepCopy() *ObjectStorageTLSSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectStorageTLSSpec.
func (*ObjectStorageTLSSpec) DeepCopyInto ¶
func (in *ObjectStorageTLSSpec) DeepCopyInto(out *ObjectStorageTLSSpec)
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"` }
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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Resources.
func (*Resources) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleSpec.
func (*RoleSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouteSpec ¶
type RouteSpec struct { // Termination specifies the termination type. By default "edge" is used. // // +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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteSpec.
func (*RouteSpec) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.
func (*Subject) DeepCopyInto ¶
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 TempoComponentSpec ¶
type TempoComponentSpec struct { // Replicas represents the number of replicas to create for this component. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Component Replicas" Replicas *int32 `json:"replicas,omitempty"` // NodeSelector is the simplest recommended form of 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"` }
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 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"` 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 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"` // JaegerQuerySpec defines Jaeger Query specific options. // // +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 ¶
func (in *TempoQueryFrontendSpec) DeepCopy() *TempoQueryFrontendSpec
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 is the spec for Tempo deployments.
+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.
func (*TempoStack) SetupWebhookWithManager ¶
func (r *TempoStack) SetupWebhookWithManager(mgr ctrl.Manager, ctrlConfig v1alpha1.ProjectConfig) error
SetupWebhookWithManager initializes the webhook.
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 // +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"` // 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"` // NOTE: currently this field is not considered. // 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"` }
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 TempoComponentSpec `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:dynamic"},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.