Documentation ¶
Index ¶
- Constants
- func CommonAnnotations(configChecksum string) map[string]string
- func CommonLabels(instanceName string) map[string]string
- func CommonOperatorLabels() map[string]string
- func ComponentLabels(component, instanceName string) labels.Set
- func ConfigureAzureStorage(pod *corev1.PodSpec, containerIdx int, storageSecretName string, ...) error
- func ConfigureGCS(pod *corev1.PodSpec, containerIdx int, storageSecretName string, ...) error
- func ConfigureS3Storage(pod *corev1.PodSpec, containerIdx int, storageSecretName string, ...) error
- func ConfigureServiceCA(podSpec *corev1.PodSpec, caBundleName string, containers ...int) error
- func ConfigureServicePKI(tempoStackName string, component string, podSpec *corev1.PodSpec, ...) error
- func ConfigureStorage(tempo v1alpha1.TempoStack, pod *corev1.PodSpec) error
- func ConfigureTLSVolumes(pod *corev1.PodSpec, containerIdx int, tlsSpec v1alpha1.TLSSpec, ...)
- func DefaultAffinity(labels labels.Set) *corev1.Affinity
- func PatchTracingJaegerEnv(tempo v1alpha1.TempoStack, pod corev1.PodTemplateSpec) (corev1.PodTemplateSpec, error)
- func Resources(tempo v1alpha1.TempoStack, component string, replicas *int32) corev1.ResourceRequirements
- func TempoContainerSecurityContext() *corev1.SecurityContext
- func TempoReadinessProbe(tlsEnable bool) *corev1.Probe
- type AzureStorage
- type GCS
- type GatewayTenantOIDCSecret
- type GatewayTenantsData
- type Params
- type S3
- type StorageParams
- type StorageTLS
Constants ¶
const ( // PrometheusCAFile declares the path for prometheus CA file for service monitors. PrometheusCAFile string = "/etc/prometheus/configmaps/serving-certs-ca-bundle/service-ca.crt" // nolint #nosec // BearerTokenFile declares the path for bearer token file for service monitors. BearerTokenFile string = "/var/run/secrets/kubernetes.io/serviceaccount/token" // ConfigVolumeName declares the name of the volume containing the tempo configuration. ConfigVolumeName = "tempo-conf" // GatewayTenantFileName the name of the tenant config file in the secret. GatewayTenantFileName = "tenants.yaml" // TmpStorageVolumeName declares the name of the volume containing temporary storage for tempo. TmpStorageVolumeName = "tempo-tmp-storage" // TmpStoragePath declares the path of temporary storage for tempo. TmpStoragePath = "/var/tempo" // HttpPortName declares the name of the tempo http port. HttpPortName = "http" // PortHTTPServer declares the port number of the tempo http port. PortHTTPServer = 3200 // PortInternalHTTPServer declares the port number of the tempo http port. PortInternalHTTPServer = 3101 // PortJaegerQuery declares the port number of the jaeger query UI port. PortJaegerQuery = 16686 // TempoReadinessPath specifies the path for the readiness probe. TempoReadinessPath = "/ready" // TempoLivenessPath specifies the path for the liveness probe. TempoLivenessPath = "/status/version" // GrpcPortName declares the name of the tempo gRPC port. GrpcPortName = "grpc" // PortGRPCServer declares the port number of the tempo gRPC port. PortGRPCServer = 9095 // JaegerUIPortName declares the name of the Jaeger UI HTTP port. JaegerUIPortName = "jaeger-ui" // PortJaegerUI declares the port number of the Jaeger UI HTTP port. PortJaegerUI = 16686 // JaegerGRPCQuery declares the name of the Jaeger UI gPRC port. JaegerGRPCQuery = "jaeger-grpc" // PortJaegerGRPCQuery declares the port number of the Jaeger UI gPRC port. PortJaegerGRPCQuery = 16685 // JaegerMetricsPortName declares the name of the Jaeger UI metrics port. JaegerMetricsPortName = "jaeger-metrics" // PortJaegerMetrics declares the port number of the Jaeger UI metrics port. PortJaegerMetrics = 16687 // OtlpGrpcPortName declares the name of the OpenTelemetry Collector gRPC receiver port. OtlpGrpcPortName = "otlp-grpc" // PortOtlpGrpcServer declares the port number of the OpenTelemetry Collector gRPC receiver port. PortOtlpGrpcServer = 4317 // PortOtlpHttpName declares the port name of the OpenTelemetry protocol over HTTP. PortOtlpHttpName = "otlp-http" // PortOtlpHttp declares the port number of the OpenTelemetry protocol over HTTP. PortOtlpHttp = 4318 // PortJaegerThriftHTTPName declares the port name of the Jaeger Thrift HTTP protocol. PortJaegerThriftHTTPName = "thrift-http" // PortJaegerThriftHTTP declares the port number of the Jaeger Thrift HTTP protocol. PortJaegerThriftHTTP = 14268 // PortJaegerThriftCompactName declares the port name of the Jaeger Thrift compact protocol. PortJaegerThriftCompactName = "thrift-compact" // PortJaegerThriftCompact declares the port number of the Jaeger Thrift compact protocol. PortJaegerThriftCompact = 6831 // PortJaegerThriftBinaryName declares the port name of the Jaeger Thrift binary protocol. PortJaegerThriftBinaryName = "thrift-binary" // PortJaegerThriftBinary declares the port number of the Jaeger Thrift binary protocol. PortJaegerThriftBinary = 6832 // PortJaegerGrpcName declares the port number of the Jaeger gRPC port. PortJaegerGrpcName = "jaeger-grpc" // PortJaegerGrpc declares the port number of the Jaeger gRPC port. PortJaegerGrpc = 14250 // PortZipkinName declares the port number of zipkin receiver port. PortZipkinName = "http-zipkin" // PortZipkin declares the port number of zipkin receiver port. PortZipkin = 9411 // HttpMemberlistPortName declares the name of the tempo memberlist port. HttpMemberlistPortName = "http-memberlist" // PortMemberlist declares the port number of the tempo memberlist port. PortMemberlist = 7946 // CompactorComponentName declares the internal name of the compactor component. CompactorComponentName = "compactor" // QuerierComponentName declares the internal name of the querier component. QuerierComponentName = "querier" // DistributorComponentName declares the internal name of the distributor component. DistributorComponentName = "distributor" // QueryFrontendComponentName declares the internal name of the query-frontend component. QueryFrontendComponentName = "query-frontend" // IngesterComponentName declares the internal name of the ingester component. IngesterComponentName = "ingester" // GatewayComponentName declares the internal name of the gateway component. GatewayComponentName = "gateway" // TempoMonolithComponentName declares the internal name of the Tempo Monolith component. TempoMonolithComponentName = "tempo" // TenantHeader is the header name that contains tenant name. TenantHeader = "x-scope-orgid" // TLSCAFilename is the key name of the CA file in the ConfigMap. TLSCAFilename = "service-ca.crt" // TLSCertFilename is the key name of the certificate file in the Secret. TLSCertFilename = "tls.crt" // TLSKeyFilename is the key name of the private key file in the Secret. TLSKeyFilename = "tls.key" // StorageTLSCAFilename is the key name of the CA file in the ConfigMap for accessing object storage. StorageTLSCAFilename = "ca.crt" )
const ( // TLSDir is the path that is mounted from the secret for TLS. TLSDir = "/var/run/tls" // TempoInternalTLSCADir is the path that is mounted from the configmap for TLS. TempoInternalTLSCADir = "/var/run/ca" // TempoInternalTLSCertDir returns the mount path of the HTTP service certificates for communication between Tempo components. TempoInternalTLSCertDir = TLSDir + "/server" // ReceiverTLSCADir is the path that is mounted from the configmap for TLS for receiver. ReceiverTLSCADir = "/var/run/ca-receiver" // ReceiverTLSCertDir returns the mount path of the receivers certificates (for ingesting traces). ReceiverTLSCertDir = TLSDir + "/receiver" // StorageTLSCADir contains the CA file for accessing object storage. StorageTLSCADir = TLSDir + "/storage/ca" // StorageTLSCertDir contains the certificate and key file for accessing object storage. StorageTLSCertDir = TLSDir + "/storage/cert" )
Variables ¶
This section is empty.
Functions ¶
func CommonAnnotations ¶
CommonAnnotations returns common annotations for each pod created by the operator.
func CommonLabels ¶
CommonLabels returns common labels for each object created by the operator.
func CommonOperatorLabels ¶
CommonOperatorLabels returns the common labels for operator components.
func ComponentLabels ¶
ComponentLabels is a list of all commonLabels including the app.kubernetes.io/component:<component> label.
func ConfigureAzureStorage ¶ added in v0.8.0
func ConfigureAzureStorage(pod *corev1.PodSpec, containerIdx int, storageSecretName string, tlsSpec *v1alpha1.TLSSpec) error
ConfigureAzureStorage mounts the Azure Storage credentials in a pod.
func ConfigureGCS ¶ added in v0.8.0
func ConfigureGCS(pod *corev1.PodSpec, containerIdx int, storageSecretName string, tlsSpec *v1alpha1.TLSSpec) error
ConfigureGCS mounts the Google Cloud Storage credentials in a pod.
func ConfigureS3Storage ¶ added in v0.8.0
func ConfigureS3Storage(pod *corev1.PodSpec, containerIdx int, storageSecretName string, tlsSpec *v1alpha1.TLSSpec) error
ConfigureS3Storage mounts the Amazon S3 credentials and TLS certs in a pod.
func ConfigureServiceCA ¶
ConfigureServiceCA modify the PodSpec adding the volumes and volumeMounts to the specified containers.
func ConfigureServicePKI ¶
func ConfigureServicePKI(tempoStackName string, component string, podSpec *corev1.PodSpec, containers ...int) error
ConfigureServicePKI modify the PodSpec adding cert the volumes and volumeMounts to the specified containers.
func ConfigureStorage ¶
func ConfigureStorage(tempo v1alpha1.TempoStack, pod *corev1.PodSpec) error
ConfigureStorage configures storage.
func ConfigureTLSVolumes ¶ added in v0.8.0
func ConfigureTLSVolumes( pod *corev1.PodSpec, containerIdx int, tlsSpec v1alpha1.TLSSpec, tlsCADir string, tlsCertDir string, volumeNamePrefix string, )
ConfigureTLSVolumes mounts the CA ConfigMap and Certificate Secret in a pod.
func DefaultAffinity ¶
DefaultAffinity returns the default affinity for Tempo components. It defines that two pods with the same labels (i.e. same component) should not be scheduled on the same node or failure domain.
func PatchTracingJaegerEnv ¶
func PatchTracingJaegerEnv(tempo v1alpha1.TempoStack, pod corev1.PodTemplateSpec) (corev1.PodTemplateSpec, error)
PatchTracingJaegerEnv adds configures jaeger-sdk via environment variables if operand observability settings exist.
func Resources ¶
func Resources(tempo v1alpha1.TempoStack, component string, replicas *int32) corev1.ResourceRequirements
Resources calculates the resource requirements of a specific component.
func TempoContainerSecurityContext ¶
func TempoContainerSecurityContext() *corev1.SecurityContext
TempoContainerSecurityContext returns the default container security context.
func TempoReadinessProbe ¶
TempoReadinessProbe returns a readiness Probe spec for tempo components.
Types ¶
type AzureStorage ¶
AzureStorage for Azure Storage.
type GatewayTenantOIDCSecret ¶
type GatewayTenantOIDCSecret struct { TenantName string ClientID string ClientSecret string IssuerCAPath string }
GatewayTenantOIDCSecret holds clientID, clientSecret and issuerCAPath for tenant's authentication.
type GatewayTenantsData ¶
type GatewayTenantsData struct { TenantName string // OpenShiftCookieSecret is used for encrypting the auth token when put into the browser session. OpenShiftCookieSecret string }
GatewayTenantsData holds cookie secret for opa-openshift sidecar.
type Params ¶
type Params struct { StorageParams StorageParams ConfigChecksum string Tempo v1alpha1.TempoStack CtrlConfig configv1alpha1.ProjectConfig TLSProfile tlsprofile.TLSProfileOptions GatewayTenantSecret []*GatewayTenantOIDCSecret GatewayTenantsData []*GatewayTenantsData }
Params holds parameters used to create Tempo objects.
type S3 ¶
type S3 struct { // Endpoint without http/https Endpoint string Bucket string Insecure bool TLS StorageTLS }
S3 holds S3 configuration.
type StorageParams ¶
type StorageParams struct { AzureStorage *AzureStorage GCS *GCS S3 *S3 }
StorageParams holds storage configuration from the storage secret, except the credentials.
type StorageTLS ¶ added in v0.8.0
type StorageTLS struct {
CAFilename string // for backwards compatibility (can be service-ca.crt or ca.crt)
}
StorageTLS holds StorageTLS configuration.