datainfrahq / druid-operator

Apache Druid On Kubernetes
Other
100 stars 39 forks source link

EKS Deploy Spec Incorrect #147

Closed EandrewJones closed 6 months ago

EandrewJones commented 6 months ago

Problem

I used the eks deploy spec as a jumping off point to deploy druid onto eks. In the process I discovered a couple issues that cause the deployment to fail:

Typos/Bad Paths

  1. Incorrect path in historicals

    historicals:
    runtime.properties: |
      ...
        druid.segmentCache.locations=[{"path":"/druid/data/segments","maxSize":10737418240}]
      ...

    The /druid directory does not exist nor does the process have the authority to make/write to it. My assumption is this is supposed to be /opt/druid/data/segments since that's the absolute path into the working directory for the pod (/opt/druid). This works for me.

  2. Incorrect path in middlemanagers

    middlemanagers:
    ...
    runtime.properties:
      ...
      druid.indexer.task.baseTaskDir=/druid/data/baseTaskDir
      ...

    Again, my assumption is the intended path here is /opt/druid/data/baseTaskDir.

Missing documentation

The deployment spec assumes minio is running in your EKS cluster. Users must infer as much from reading the spec. And then they must go down the rabbit hole of minio docs. Obviously, I don't expect druid docs to cover all the steps to properly deploy minio on EKS. Nonetheless, adding a README outlining the prerequisites for this spec to work and pointing to the right minio docs would be nice for users.

Solution

Update the paths and add the README. @AdheipSingh Can you confirm whether the paths I assumed are what's intended?

I'm happy to put in a PR for this when I get a chance. I just wanted to track the issue while it was on my mind.

AdheipSingh commented 6 months ago

@EandrewJones Thanks for creating this issue.

Feel free to send a PR and if you need any helm with running minio, please check e2e tests and Makefile, its bootstrapped with commands.

I am full on my hands maintaining codebase and docs apart from my work contracts, any help here is welcome and very appreciated. You can reach out to me on druid operator slack or druid slack for faster collaboration.

EandrewJones commented 6 months ago

Adeiph,

Totally understand being busy. Thanks for the clarification on expected behavior. I can add volumeClaimTemplate and volumeMount and add a readme pointing to the e2e tests & makefile for bootstrapping minio.

Best

Evan Jones Website: www.ea-jones.com

On Sun, Mar 3, 2024 at 12:29 AM AdheipSingh @.***> wrote:

@EandrewJones https://github.com/EandrewJones Thanks for creating this issue.

  • For historicals what is missing is a volume mount, once you have a volumeMount in the spec, segments will be loaded in the same disk.
  • For MM, same issue. If we add a volumeClaimTemplate and volumeMount, the directory path makes sense. MM are stateful and should be backed by disk.

Feel free to send a PR and if you need any helm with running minio, please check e2e tests and Makefile, its bootstrapped with commands.

I am full on my hands maintaining codebase and docs apart from my work contracts, any help here is welcome and very appreciated. You can reach out to me on druid operator slack or druid slack for faster collaboration.

— Reply to this email directly, view it on GitHub https://github.com/datainfrahq/druid-operator/issues/147#issuecomment-1975035051, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJ2T6AKP5NVRH4TBSSHO2KTYWKYJ7AVCNFSM6AAAAABEDVAXJKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZVGAZTKMBVGE . You are receiving this because you were mentioned.Message ID: @.***>