markhoerth opened a new issue, #11267:
URL: https://github.com/apache/gravitino/issues/11267

   ### Version
   
   main branch
   
   ### Describe what's wrong
   
   Summary
   The Apache Gravitino Helm chart at dev/charts/gravitino/ assumes the 
Gravitino server is installed at /opt/gravitino/ in the container image. The 
init container scripts, the GRAVITINO_HOME env var, and the default initScript 
all hardcode this path. All currently published images verified (1.2.0 and 
1.3.0-SNAPSHOT) install Gravitino at /root/gravitino/ instead. A default helm 
install against the published image fails with CrashLoopBackOff immediately.
   Reproduction
   bashhelm install gravitino dev/charts/gravitino/ -n gravitino-test 
--create-namespace
   kubectl get pods -n gravitino-test
   # Pod enters CrashLoopBackOff within seconds
   Main container crash log:
   cp: target '/opt/gravitino/conf' is not a directory
   Start the Gravitino Server
   /bin/bash: /opt/gravitino/bin/start-gravitino.sh: No such file or directory
   Init container log:
   cp: cannot stat '/opt/gravitino/scripts/*': No such file or directory
   ls: cannot access '/opt/gravitino/libs/gravitino-server-*': No such file or 
directory
   Evidence
   Published images install Gravitino at /root/gravitino, not /opt/gravitino. 
Verified against both 1.3.0-SNAPSHOT and 1.2.0:
   $ docker inspect apache/gravitino:1.3.0-SNAPSHOT | jq '.[0].Config | 
{Entrypoint, WorkingDir}'
   {
     "Entrypoint": ["/bin/bash", "/root/gravitino/bin/start-gravitino.sh"],
     "WorkingDir": "/root/gravitino"
   }
   
   $ docker run --rm --entrypoint=sh apache/gravitino:1.3.0-SNAPSHOT -c \
       "find / -name 'gravitino-server-*.jar' 2>/dev/null | head -3"
   
/root/gravitino/iceberg-rest-server/libs/gravitino-server-common-1.3.0-SNAPSHOT.jar
   /root/gravitino/libs/gravitino-server-common-1.3.0-SNAPSHOT.jar
   /root/gravitino/libs/gravitino-server-1.3.0-SNAPSHOT.jar
   
   $ docker run --rm --entrypoint=sh apache/gravitino:1.2.0 -c \
       "find / -name 'gravitino-server-*.jar' 2>/dev/null | head -3"
   /root/gravitino/iceberg-rest-server/libs/gravitino-server-common-1.2.0.jar
   /root/gravitino/libs/gravitino-server-common-1.2.0.jar
   /root/gravitino/libs/gravitino-server-1.2.0.jar
   
   $ docker run --rm --entrypoint=ls apache/gravitino:1.3.0-SNAPSHOT 
/opt/gravitino
   ls: cannot access '/opt/gravitino': No such file or directory
   The chart hardcodes /opt/gravitino in multiple locations:
   
   dev/charts/gravitino/templates/deployment.yaml — init container cp -r 
/opt/gravitino/scripts/* and ls /opt/gravitino/libs/gravitino-server-* lookup, 
plus GRAVITINO_HOME=/opt/gravitino env var on the main container
   dev/charts/gravitino/values.yaml — entity.storagePath: 
/opt/gravitino/data/jdbc and initScript referencing ${GRAVITINO_HOME}/conf and 
${GRAVITINO_HOME}/bin/start-gravitino.sh
   
   Affected versions
   
   1.3.0-SNAPSHOT (current)
   1.2.0 (verified with same diagnostic)
   Likely all currently published image tags
   
   Suggested resolution
   Three options. Engineering should pick one.
   Option A (preferred): Fix the image build to install at /opt/gravitino. /opt 
is the standard Linux convention for self-contained third-party software. /root 
is the root user's home directory and a non-standard install location. Aligns 
the image with the chart's existing assumption and with Docker community 
conventions. No chart change required.
   Option B: Update the chart to match the image. Change all /opt/gravitino 
references in the chart to /root/gravitino. Smaller change but codifies a 
non-standard install location in the chart's contract.
   Option C: Parameterize. Add image.gravitinoHome (default /root/gravitino) to 
values.yaml, reference it everywhere in templates and the init script. 
Customers building custom images at other paths can override. Larger chart 
change but most flexible.
   Environment
   
   Helm 3.20.2
   Docker Desktop Kubernetes v1.34.1
   Images tested: apache/gravitino:1.3.0-SNAPSHOT (digest 
sha256:dae8023c7f3d...) and apache/gravitino:1.2.0
   Host: WSL2 Ubuntu
   
   Notes
   A previous instance of this bug was filed and closed in favor of 
republishing the SNAPSHOT image. The republished image still installs at 
/root/gravitino, so the underlying contract mismatch was never actually 
resolved. Reopening with broader scope, since the same crash reproduces against 
1.2.0 (a released tag, not a SNAPSHOT).
   
   ### Error message and/or stacktrace
   
   NA
   
   ### How to reproduce
   
   NA
   
   ### Additional context
   
   _No response_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to