Hi Team
We run hypertrace on CRC (Openshift 4). To do so we had to slightly modify images to make them rootless. Sharing in 3 PRs the modifications:
For helm orchestration we used helmfile. Adding example helmfile files in attachment pointing to regular local hypertrace helm charts. Please notice usage of my own docker images that wont be required after merging PRs above.
helmfile.yaml
repositories:
- name: hypertrace
url: https://storage.googleapis.com/hypertrace-helm-charts
releases:
- name: hypertrace-infra
namespace: foo
chart: ../../../charts/hypertrace/data-services
version: 0.1.0
labels:
tier: infra
domain: hypertrace
values:
- hypertrace-infra.values.yaml.gotmpl
- name: hypertrace
namespace: foo
chart: ../../../charts/hypertrace/platform-services
version: 0.1.0
labels:
tier: app
domain: hypertrace
needs:
- foo/hypertrace-infra
values:
- hypertrace.values.yaml.gotmpl
hypertrace-infra.values.yaml.gotmpl
htEnv: ocp
mongodb:
enabled: false
replicaSet:
enabled: false
postgresql:
enabled: true
fullnameOverride: "postgres"
persistence:
size: "2Gi"
securityContext:
enabled: false
containerSecurityContext:
enabled: false
zookeeper:
replicaCount: 1
javaOpts: "-Xms128M -Xmx128M -XX:MaxDirectMemorySize=64M -XX:+ExitOnOutOfMemoryError"
resources:
requests:
cpu: "0.1"
memory: "256Mi"
limits:
cpu: "0.5"
memory: "256Mi"
volume:
storageClassName: ""
storage: "1Gi"
livenessProbe:
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 1
failureThreshold: 8
readinessProbe:
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 1
failureThreshold: 8
securityContext: ""
kafka:
image:
repository: "tomassatka/hypertrace-kafka"
tagOverride: "0.0.1"
replicaCount: 1
javaOpts: "-Xms128M -Xmx384M -XX:MaxDirectMemorySize=64M -XX:+ExitOnOutOfMemoryError"
resources:
requests:
cpu: "0.2"
memory: "512Mi"
limits:
cpu: "0.5"
memory: "512Mi"
volume:
storageClassName: ""
storage: "4Gi"
readinessProbe:
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 1
failureThreshold: 10
config:
defaultReplicationFactor: 1
minInsyncReplicas: 1
offsetsTopicReplicationFactor: 1
transactionStateLogReplicationFactor: 1
schema-registry:
image:
repository: "tomassatka/hypertrace-schema-registry"
pullPolicy: "Always"
replicaCount: 1
heapOptions: "-Xms128M -Xmx128M -XX:MaxDirectMemorySize=64M -XX:+ExitOnOutOfMemoryError"
resources:
requests:
cpu: "0.1"
memory: "256Mi"
limits:
cpu: "0.5"
memory: "256Mi"
customEnv:
SCHEMA_REGISTRY_KAFKASTORE_TOPIC_REPLICATION_FACTOR: 1
livenessProbe:
initialDelaySeconds: 20
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 9
readinessProbe:
initialDelaySeconds: 20
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 9
kafka:
bootstrapServers: "bootstrap:9092"
pinot:
controller:
replicaCount: 1
jvmOpts: "-Xms128M -Xmx192M -XX:MaxDirectMemorySize=64M -XX:+ExitOnOutOfMemoryError"
resources:
requests:
cpu: "0.1"
memory: "256Mi"
persistence:
size: "4Gi"
storageClass: ""
livenessProbe:
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 1
failureThreshold: 8
readinessProbe:
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 1
failureThreshold: 8
broker:
replicaCount: 1
jvmOpts: "-Xms128M -Xmx192M -XX:MaxDirectMemorySize=64M -XX:+ExitOnOutOfMemoryError"
resources:
requests:
cpu: "0.1"
memory: "256Mi"
livenessProbe:
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 1
failureThreshold: 8
readinessProbe:
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 1
failureThreshold: 8
server:
replicaCount: 1
jvmOpts: "-Xms128M -Xmx192M -XX:MaxDirectMemorySize=64M -XX:+ExitOnOutOfMemoryError"
resources:
requests:
cpu: "0.2"
memory: "256Mi"
persistence:
size: "4Gi"
storageClass: ""
livenessProbe:
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 1
failureThreshold: 8
readinessProbe:
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 1
failureThreshold: 8
hypertrace.values.yaml.gotmpl
span-normalizer:
javaOpts: "-Xms128M -Xmx128M -XX:MaxDirectMemorySize=96M -XX:+ExitOnOutOfMemoryError"
resources:
requests:
cpu: "0.05"
memory: "320Mi"
limits:
cpu: "0.5"
memory: "320Mi"
livenessProbe:
initialDelaySeconds: 10
periodSeconds: 5
readinessProbe:
initialDelaySeconds: 10
periodSeconds: 5
kafka-topic-creator:
enabled: false
raw-spans-grouper:
replicaCount: 1
javaOpts: "-Xms128M -Xmx128M -XX:MaxDirectMemorySize=96M -XX:+ExitOnOutOfMemoryError"
resources:
requests:
cpu: "0.05"
memory: "320Mi"
limits:
cpu: "0.5"
memory: "320Mi"
livenessProbe:
initialDelaySeconds: 10
periodSeconds: 5
readinessProbe:
initialDelaySeconds: 10
periodSeconds: 5
rawSpansGrouperConfig:
kafkaStreamsConfig:
replicationFactor: 1
span:
groupby:
internal: 10
kafka-topic-creator:
enabled: false
volumeClaimTemplates:
storageClassName: ""
hypertrace-trace-enricher:
javaOpts: "-Xms128M -Xmx192M -XX:MaxDirectMemorySize=96M -XX:+ExitOnOutOfMemoryError"
resources:
requests:
cpu: "0.2"
memory: "384Mi"
limits:
cpu: "0.5"
memory: "384Mi"
livenessProbe:
initialDelaySeconds: 10
periodSeconds: 5
readinessProbe:
initialDelaySeconds: 10
periodSeconds: 5
kafka-topic-creator:
enabled: false
hypertrace-view-generator:
creator:
allViews:
jobName: all-views-creation-job
javaOpts: "-XX:InitialRAMPercentage=50.0 -XX:MaxRAMPercentage=75.0"
resources:
limits:
cpu: 1.0
memory: 512Mi
requests:
cpu: 0.1
memory: 384Mi
viewGeneratorGroups:
all-views-generator:
generator:
replicaCount: 1
resources:
limits:
cpu: 1
memory: 1.5Gi
requests:
cpu: 0.5
memory: 1.5Gi
kafka-topic-creator:
enabled: true
kafka:
topics:
backend-entity-view-events:
replicationFactor: 1
partitions: 2
configs:
retention.bytes: 1073741824
retention.ms: 10800000
raw-trace-view-events:
replicationFactor: 1
partitions: 2
configs:
retention.bytes: 1073741824
retention.ms: 10800000
raw-service-view-events:
replicationFactor: 1
partitions: 2
configs:
retention.bytes: 1073741824
retention.ms: 10800000
service-call-view-events:
replicationFactor: 1
partitions: 2
configs:
retention.bytes: 1073741824
retention.ms: 10800000
span-event-view:
replicationFactor: 1
partitions: 2
configs:
retention.bytes: 1073741824
retention.ms: 10800000
log-event-view:
replicationFactor: 1
partitions: 2
configs:
retention.bytes: 1073741824
retention.ms: 10800000
gateway-service:
replicaCount: 1
containerPortName: grpc-port
entity-service:
replicaCount: 1
entityServiceConfig:
dataStoreType: "postgres"
config-bootstrapper:
dataStoreType: "postgres"
javaOpts: "-Xms128M -Xmx128M"
resources:
requests:
cpu: "0.1"
memory: "256Mi"
limits:
cpu: "0.2"
memory: "256Mi"
attribute-service:
replicaCount: 1
configMap:
dataStoreType: "postgres"
config-bootstrapper:
dataStoreType: "postgres"
javaOpts: "-Xms128M -Xmx128M"
resources:
requests:
cpu: "0.1"
memory: "256Mi"
limits:
cpu: "0.2"
memory: "256Mi"
query-service:
replicaCount: 1
hypertrace-graphql-service:
replicaCount: 1
javaOpts: "-Xms128M -Xmx128M -XX:MaxDirectMemorySize=64M -XX:+ExitOnOutOfMemoryError"
resources:
requests:
cpu: "0.2"
memory: "256Mi"
limits:
cpu: "0.5"
memory: "256Mi"
livenessProbe:
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
initialDelaySeconds: 30
periodSeconds: 10
hypertrace-ui:
image:
repository: tomassatka/hypertrace-ui
pullPolicy: Always
tagOverride: "0.70.3"
service:
port: 2020
resources:
requests:
cpu: "0.05"
memory: "64Mi"
limits:
cpu: "0.2"
memory: "64Mi"
kafka-topic-creator:
enabled: true
resources:
requests:
cpu: "0.2"
memory: "256Mi"
limits:
cpu: "0.5"
memory: "256Mi"
env:
- name: KAFKA_HEAP_OPTS
value: "-Xms128M -Xmx128M"
jobName: hypertrace-kafka-topics-creator
helmHook: pre-install,pre-upgrade
zookeeper:
address: zookeeper:2181
kafka:
topics:
jaeger-spans:
replicationFactor: 1
partitions: 2
configs:
retention.bytes: 1073741824
retention.ms: 10800000
raw-spans-from-jaeger-spans:
replicationFactor: 1
partitions: 2
configs:
retention.bytes: 1073741824
retention.ms: 10800000
structured-traces-from-raw-spans:
replicationFactor: 1
partitions: 2
configs:
retention.bytes: 1073741824
retention.ms: 10800000
enriched-structured-traces:
replicationFactor: 1
partitions: 2
configs:
retention.bytes: 1073741824
retention.ms: 10800000
raw-logs:
replicationFactor: 1
partitions: 2
configs:
retention.bytes: 1073741824
retention.ms: 10800000
config-service:
configServiceConfig:
dataStoreType: "postgres"
postgres:
host: postgres
port: 5432
url: ""
hypertrace-data-config-service:
entityServiceConfig:
dataStoreType: "postgres"
attributeServiceConfig:
dataStoreType: "postgres"
configServiceConfig:
dataStoreType: "postgres"
postgres:
host: postgres
port: 5432
url: ""
config-bootstrapper:
dataStoreType: "postgres"
livenessProbe:
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
initialDelaySeconds: 30
periodSeconds: 10
resources:
requests:
cpu: 0.1
memory: 1280Mi
limits:
cpu: 1
memory: 1280Mi
hypertrace-data-query-service:
livenessProbe:
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
initialDelaySeconds: 30
periodSeconds: 10
resources:
requests:
cpu: 0.1
memory: 1280Mi
limits:
cpu: 1
memory: 1280Mi
Hi Team
We run hypertrace on CRC (Openshift 4). To do so we had to slightly modify images to make them rootless. Sharing in 3 PRs the modifications:
For helm orchestration we used helmfile. Adding example helmfile files in attachment pointing to regular local hypertrace helm charts. Please notice usage of my own docker images that wont be required after merging PRs above.
helmfile.yaml
hypertrace-infra.values.yaml.gotmpl
hypertrace.values.yaml.gotmpl