apache / pulsar-helm-chart

Official Apache Pulsar Helm Chart
https://pulsar.apache.org/
Apache License 2.0
210 stars 220 forks source link

Setting up custom config #508

Open danielnaumau opened 3 months ago

danielnaumau commented 3 months ago

Is your feature request related to a problem? Please describe. I want to disable writing to a journal and I don't see how it can be done with helm charts. As far as I understood I need to do it here https://bookkeeper.apache.org/docs/reference/config/ but I don't see any ways how to create custom configs in pulsar helm charts.

Describe the solution you'd like It would be good to show some examples in documentation how it can be done

Describe alternatives you've considered Maybe I can use pulsar admin to disable writing to a journal but I'd rather know how to create custom configs using helm charts.

lhotari commented 3 months ago

You can achieve this by setting this config:

bookkeeper:
   configData:
      # this configures journalWriteData=false in /pulsar/conf/bookkeeper.conf
      PULSAR_PREFIX_journalWriteData: "false"

journalWriteData is documented in the default config file of Bookkeeper.

You will need to add PULSAR_PREFIX_ if the config key isn't included in default Pulsar provided conf files. This is due to https://github.com/apache/pulsar/blob/master/docker/pulsar/scripts/apply-config-from-env.py script being used to apply configuration provided in environment variables. For example this Helm chart uses apply-config-from-env.py for Bookie pods here: https://github.com/apache/pulsar-helm-chart/blob/023f902a0256d7ac21be2c548be1223d24511bbf/charts/pulsar/templates/bookkeeper-statefulset.yaml#L174-L176

The chart will create a separate journal volume. If you want to get rid of that, you can use this config:

bookkeeper:
   volumes:
      # optional step
      # this prevents the chart from creating a volume for the journal, don't set this for existing deployments
      useSingleCommonVolume: true
    common:
      name: common
      # size for common volume (only ledgers when journals are missing)
      size: 60Gi
lhotari commented 3 months ago

@danielnaumau Would you like to contribute improvements to the README to document how to configure specific configuration options?