GitHub user jesumyip added a comment to the discussion: struggling with pulsar 
functions in kubernetes

@michaeljmarshall Yes, using helm. Our ops team created a helm subchart that 
combined pulsar,redis, and istio. 

Here are the values we use:

```
pulsar:
  enabled: true
  namespace: datastream
  initialize: true
  persistence: true
  volumes:
    persistence: true
    local_storage: false
  components:
    # zookeeper
    zookeeper: true
    # bookkeeper
    bookkeeper: true
    # bookkeeper - autorecovery
    autorecovery: true
    # broker
    broker: true
    # functions
    functions: true
    # proxy
    proxy: true
    # toolset
    toolset: true
    # pulsar manager
    pulsar_manager: false
  monitoring:
    # monitoring - prometheus
    prometheus: true
    # monitoring - grafana
    grafana: true
    # monitoring - node_exporter
    node_exporter: true
    # alerting - alert-manager
    alert_manager: true
  certs:
    internal_issuer:
      # use cert-manager to provision TLS certificates
      enabled: true
  tls:
    enabled: true
    common:
      organization:
        - "Test Demo"
    proxy:
      enabled: true
    broker:
      enabled: true
    bookie:
      enabled: true
    zookeeper:
      enabled: true
    autorecovery:
      enabled: true
    toolset:
      enabled: true
  auth:
    authentication:
      enabled: true
      jwt:
        # set to true if generated keys are symmetric; otherwise, false
        usingSecretKey: false
    authorization:
      enabled: true
    superUsers:
      # broker to broker communication
      broker: "broker-admin"
      # proxy to broker communication
      proxy: "proxy-admin"
      # pulsar-admin client to broker/proxy communication
      client: "admin"
  # component settings
  zookeeper:
    nodeSelector:
      workload: stream
    volumes:
      persistence: true
      data:
        name: data
        size: 20Gi
        local_storage: false
        storageClassName: regional-storage-pd-balanced
  bookkeeper:
    nodeSelector:
      workload: stream
    affinity:
      type: preferredDuringSchedulingIgnoredDuringExecution
    volumes:
      persistence: true
      useSingleCommonVolume:
      journal:
        name: journal
        size: 10Gi
        local_storage: false
        storageClassName: regional-storage-pd-balanced
      ledgers:
        name: ledgers
        size: 50Gi
        local_storage: false
        storageClassName: regional-storage-pd-balanced
  autorecovery:
    nodeSelector:
      workload: stream
    affinity:
      type: preferredDuringSchedulingIgnoredDuringExecution
  broker:
    nodeSelector:
      workload: stream
  proxy:
    nodeSelector:
      workload: stream
    autoscaling:
      enabled: true
      minReplicas: 3
      maxReplicas: 6
    affinity:
      anti_affinity: true
      type: preferredDuringSchedulingIgnoredDuringExecution
    service:
      annotations:
        networking.gke.io/load-balancer-type: "Internal"
      type: LoadBalancer
    ingress:
      enabled: false
  dashboard:
    nodeSelector:
      workload: stream
  toolset:
    nodeSelector:
      workload: stream
  prometheus:
    nodeSelector:
      workload: stream
    volumes:
      persistence: true
      data:
        name: data
        size: 10Gi
        local_storage: false
        storageClassName: regional-storage-pd-balanced
  grafana:
    nodeSelector:
      workload: stream
    service:
      type: ClusterIP
    ingress:
      enabled: false
  pulsar_manager:
    nodeSelector:
      workload: stream
  
redis-ha:
  enabled: true
  nodeSelector:
      workload: cache

local-storage-provisioner:
  enabled: false

gateway:
  service:
    # Type of service. Set to "None" to disable the service entirely
    type: None
    ports:
    - name: status-port
      port: 15021
      protocol: TCP
      targetPort: 15021
    - name: http2
      port: 80
      protocol: TCP
      targetPort: 80
    - name: https
      port: 443
      protocol: TCP
      targetPort: 443
    - name: pulsar
      port: 6650
      protocol: TCP
      targetPort: 6650
    - name: pulsar-ssl
      port: 6651
      protocol: TCP
      targetPort: 6651
    annotations:
      networking.gke.io/load-balancer-type: "Internal"
    loadBalancerIP: "<redacted>"
    loadBalancerSourceRanges: [<redacted>]
    externalTrafficPolicy: ""
    externalIPs: []
```


GitHub link: 
https://github.com/apache/pulsar/discussions/18332#discussioncomment-4063359

----
This is an automatically sent email for dev@pulsar.apache.org.
To unsubscribe, please send an email to: dev-unsubscr...@pulsar.apache.org

Reply via email to