manifestutils

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: 15 Imported by: 0

Documentation

Index

Constants

View Source
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"
)
View Source
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

func CommonAnnotations(configChecksum string) map[string]string

CommonAnnotations returns common annotations for each pod created by the operator.

func CommonLabels

func CommonLabels(instanceName string) map[string]string

CommonLabels returns common labels for each object created by the operator.

func CommonOperatorLabels

func CommonOperatorLabels() map[string]string

CommonOperatorLabels returns the common labels for operator components.

func ComponentLabels

func ComponentLabels(component, instanceName string) labels.Set

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

func ConfigureServiceCA(podSpec *corev1.PodSpec, caBundleName string, containers ...int) error

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

func DefaultAffinity(labels labels.Set) *corev1.Affinity

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

func TempoReadinessProbe(tlsEnable bool) *corev1.Probe

TempoReadinessProbe returns a readiness Probe spec for tempo components.

Types

type AzureStorage

type AzureStorage struct {
	Container   string
	AccountName string
	AccountKey  string
}

AzureStorage for Azure Storage.

type GCS

type GCS struct {
	Bucket string
}

GCS for Google Cloud 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.

Jump to

Keyboard shortcuts

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