Skip to content

Hypertrace on Openshift #315

Description

@tomassatka

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

deploymentdeployment related issues

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions