streamingfast / firehose-core

Firehose Integrators Tool Kit (for `firehose-<chain>` maintainers)
Apache License 2.0
8 stars 9 forks source link

Misleading `--config-file` help #41

Closed aasseman closed 6 months ago

aasseman commented 6 months ago

From the firehose command help:

Global Flags:
  -c, --config-file string                      Configuration file to use. No config file loaded if set to an empty string. (default "./firehose.yaml")

I only use env vars, so I don't need the config file. I tried:

And both failed with an error about not being able to find ./firehose.yaml.

My current workaround is to call with -c=/dev/null.

maoueh commented 6 months ago

I fixed some bugs around that a few months ago, what version are you using?

Just tested on develop doing go run ./cmd/firecore start -c "" --reader-node-path=geth and the process started correctly.

aasseman commented 6 months ago

I'm on firehose-ethereum:v2.3.5-geth-v1.13.14-fh2.4

maoueh commented 6 months ago

Ok thanks, I've tested:

docker run --platform=linux/amd64 --rm -it ghcr.io/streamingfast/firehose-ethereum:v2.3.5-geth-v1.13.14-fh2.4 -c "" start --reader-node-path=geth

And this starts without an error. Do you remember the exact command used?

maoueh commented 6 months ago

I wasn't able to make it work with an environment variables through Docker, seems the empty variable doesn't get set there. I tried with --env-file too.

Haven't found the right incantation for this

aasseman commented 6 months ago

I'm using kubernetes, here's how I run the firehose component:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: firehose
spec:
  selector:
    matchLabels:
      app: firehose
  replicas: 1
  template:
    metadata:
      labels:
        app: firehose
    spec:
      containers:
      - name: firehose
        image: ghcr.io/streamingfast/firehose-ethereum:v2.3.5-geth-v1.13.14-fh2.4
        args:
          - "start"
          - "firehose"
          - -c=/dev/null
        resources:
          limits:
            cpu: 3000m
            memory: 16G
          requests:
            cpu: 2000m
            memory: 8G
        ports:
          - name: grpc
            containerPort: 10015
            protocol: TCP
        env:
          - name: FIREETH_GLOBAL_LOG_TO_FILE
            value: "false"
          - name: FIREETH_GLOBAL_DATA_DIR
            value: "/var/lib/fireeth"
          - name: FIREETH_COMMON_ONE_BLOCK_STORE_URL
            valueFrom:
              secretKeyRef:
                name: s3-flat-files
                key: one-block
          - name: FIREETH_COMMON_MERGED_BLOCKS_STORE_URL
            valueFrom:
              secretKeyRef:
                name: s3-flat-files
                key: merged-blocks
          - name: FIREETH_COMMON_FORKED_BLOCKS_STORE_URL
            valueFrom:
              secretKeyRef:
                name: s3-flat-files
                key: forked-blocks
          - name: FIREETH_COMMON_INDEX_STORE_URL
            valueFrom:
              secretKeyRef:
                name: s3-flat-files
                key: index-store
          - name: AWS_ACCESS_KEY_ID
            valueFrom:
              secretKeyRef:
                name: s3-flat-files-auth
                key: access-key
          - name: AWS_SECRET_ACCESS_KEY
            valueFrom:
              secretKeyRef:
                name: s3-flat-files-auth
                key: secret-key
          - name: FIREETH_COMMON_BLOCK_INDEX_SIZES #common-block-index-sizes
            value: "[10000]"
          - name: FIREETH_COMMON_LIVE_BLOCKS_ADDR
            value: "relayer:10014"
          - name: FIREETH_COMMON_AUTH_PLUGIN
            valueFrom:
              secretKeyRef:
                name: fireeth-auth
                key: token
          - name: DLOG
            value: ".*=debug"
          - name: DSTORE_S3_BUFFERED_READ
            value: "true"
maoueh commented 6 months ago

It seems the problem is that -c="" is not supported, fails via Docker too. So you can do:

        args:
          - "start"
          - "firehose"
          - -c
          - ""

Or

        args:
          - "start"
          - "firehose"
          - --config-file=