Passing java_opts to spring boot applications in kubernetes

11,264

Solution 1

You can use command in k8s deployment manifest:

containers:
- name: mycontainer
  env:
  - name: NAME
    value: VALUE
  command: [ "java"]
  args: ["-jar", "-D..."]

Solution 2

You could also include it in your kubernetes deployment yaml file alongside the rest of your environment variables that you wish to pass into your docker container:

- name: JAVA_OPTS
  value: >-
        -Djava.security.egd=file:/dev/./urandom 
        -Djsversion=1.0 -D<variable>=<service-1> -D<variable>=<service-2>
- name: SERVER_PORT
  value: 8080
Share:
11,264
magic
Author by

magic

Updated on August 21, 2022

Comments

  • magic
    magic over 1 year

    Currently, we are building Docker images with an entrypoint and passing this image to a Kubernetes deployment.

    Is there any way to pass the entrypoint directly to Kubernetes dynamically so that it starts spring boot applications?

    What are the different ways of passing this entrypoint directly in Kubernetes?

    ### Runtime image ###
    FROM openjdk:8-jre-alpine
    
    #Set working dir
    WORKDIR /test
    
    # Copy the executable JAR
    COPY /*.jar /test/
    
    # Run the app
    ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Djsversion=1.0 -D<variable>=<service-1> -D<variable>=<service-2>   -jar  *.jar