diff --git a/.github/workflows/environment.yaml b/.github/workflows/environment.yaml
index bebad939..236965fd 100644
--- a/.github/workflows/environment.yaml
+++ b/.github/workflows/environment.yaml
@@ -118,34 +118,33 @@ jobs:
with:
filters: .github/workflows/filters/filters.yaml
- name: Helm
- uses: Azure/setup-helm@v1
+ uses: Azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3.5
with:
- version: 'v3.0.0'
+ version: v3.13.0
- name: Kind Clutser
uses: engineerd/setup-kind@v0.5.0
with:
- image: kindest/node:v1.21.1
- version: v0.11.1
+ image: kindest/node:v1.25.16
+ version: v0.23.0
config: kind.yaml
- name: Configuring and testing the Installation
run: |
kubectl cluster-info --context kind-kind
kind get kubeconfig >$HOME/.kube/config
kubectl get nodes
- - name: Install Fission CLI
+ - name: Base Setup
run: |
- curl -Lo fission https://github.com/fission/fission/releases/download/1.12.0/fission-cli-linux \
- && chmod +x fission && sudo mv fission /usr/local/bin/
+ make verify-kind-cluster
+ make install-fission-cli
+ make install-skaffold
+ make create-crds
- name: jvm
- uses: hiberbee/github-action-skaffold@1.27.0
- with:
- skaffold-version: '1.39.2'
- command: run
- profile: jvm
- tag: latest
- - name: jvm-tests
run: |
- kind load docker-image jvm-env && ./test_utils/run_test.sh jvm/tests/test_java_env.sh
+ SKAFFOLD_PROFILE=jvm make skaffold-run
+ make jvm-test-images
+ make router-port-forward
+ - name: jvm-tests
+ run: ./test_utils/run_test.sh jvm/tests/test_java_env.sh
nodejs:
runs-on: ubuntu-latest
needs: check
diff --git a/Makefile b/Makefile
index 5f2ff052..f83f074f 100644
--- a/Makefile
+++ b/Makefile
@@ -74,6 +74,10 @@ go-test-images:
@kind load docker-image go-env
@kind load docker-image go-builder
+jvm-test-images:
+ @kind load docker-image jvm-env
+ @kind load docker-image jvm-builder
+
nodejs-test-images:
@kind load docker-image node-env
@kind load docker-image node-builder
diff --git a/jvm/Dockerfile b/jvm/Dockerfile
index 02f0f609..55e38efd 100644
--- a/jvm/Dockerfile
+++ b/jvm/Dockerfile
@@ -1,4 +1,4 @@
-FROM maven:3.5-jdk-8 as BUILD
+FROM maven:3.9.9-eclipse-temurin-22-alpine AS build
WORKDIR /usr/src/myapp/
# To reuse the build cache, here we split maven dependency
@@ -9,8 +9,8 @@ RUN mvn dependency:go-offline
COPY src /usr/src/myapp/src/
RUN mvn package
-FROM openjdk:8-jdk-alpine
+FROM eclipse-temurin:22-jdk-alpine
VOLUME /tmp
-COPY --from=BUILD /usr/src/myapp/target/env-java-0.0.1-SNAPSHOT.jar /app.jar
+COPY --from=build /usr/src/myapp/target/env-java-0.0.1-SNAPSHOT.jar /app.jar
ENTRYPOINT java ${JVM_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /app.jar --server.port=8888
EXPOSE 8888
\ No newline at end of file
diff --git a/jvm/Makefile b/jvm/Makefile
index c8350993..cce28aef 100644
--- a/jvm/Makefile
+++ b/jvm/Makefile
@@ -1,6 +1,6 @@
-include ../rules.mk
.PHONY: all
-all: jvm-builder jvm-env-img
+all: jvm-env-img
jvm-env-img: Dockerfile
\ No newline at end of file
diff --git a/jvm/README.md b/jvm/README.md
index 96b0cdea..c69a7ae5 100644
--- a/jvm/README.md
+++ b/jvm/README.md
@@ -2,7 +2,7 @@
This is the JVM environment for Fission.
-It's a Docker image containing a OpenJDK8 runtime, along with a
+It's a Docker image containing a OpenJDK22 runtime by [Eclipse Temurin](https://hub.docker.com/_/eclipse-temurin), along with a
dynamic loader. A few dependencies are included in the
pom.xml file.
@@ -67,4 +67,4 @@ JVM environment uses Tomcat HTTP server by default as it is included in spring w
## Java and JVM builder
-JVM environment builder is based on OpenJDK8 and Maven 3.5.4 version. The default build command runs `mvn clean package` and uses the target/*with-dependencies.jar file for function. The default build command can be overridden as long as the uber jar file is copied to ${DEPLOY_PKG}.
+JVM environment builder is based on OpenJDK22 built by Eclipse Temurin and Maven 3.9.9 version. The default build command runs `mvn clean package` and uses the target/*with-dependencies.jar file for function. The default build command can be overridden as long as the uber jar file is copied to ${DEPLOY_PKG}.
diff --git a/jvm/builder/Dockerfile b/jvm/builder/Dockerfile
index e3ac6c4f..36b6dd9a 100644
--- a/jvm/builder/Dockerfile
+++ b/jvm/builder/Dockerfile
@@ -1,50 +1,33 @@
## Fission builder base image
ARG BUILDER_IMAGE=fission/builder:latest
-FROM ${BUILDER_IMAGE}
+FROM ${BUILDER_IMAGE} AS builder
-## Section copied from the openjdk:8-jdk-alpine Dockerfile - (https://github.com/docker-library/openjdk/blob/47a6539cd18023dafb45db9013455136cc0bca07/8/jdk/alpine/Dockerfile)
+## Use eclipse-temurin:22-jdk-alpine - (https://github.com/adoptium/containers/blob/07677395574f5d3462c3b6fdf5f6c4a0a350b683/22/jdk/alpine/Dockerfile)
-FROM alpine:3.8
+FROM eclipse-temurin:22-jdk-alpine
-ENV LANG C.UTF-8
-RUN { \
- echo '#!/bin/sh'; \
- echo 'set -e'; \
- echo; \
- echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \
- } > /usr/local/bin/docker-java-home \
- && chmod +x /usr/local/bin/docker-java-home
-ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk
-ENV PATH $PATH:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
+## Section copied from the Maven Dockerfile
-ENV JAVA_VERSION 8u181
-## Use "fuzzy" version matching to pin the version to a major/minor release
-ENV JAVA_ALPINE_VERSION "~8"
+RUN apk add --no-cache bash procps curl tar openssh-client
-RUN set -x \
- && apk add --no-cache \
- openjdk8="$JAVA_ALPINE_VERSION" \
- && [ "$JAVA_HOME" = "$(docker-java-home)" ]
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
-## Section copied from the Maven Dockerfile
+ENV MAVEN_HOME=/usr/share/maven
-RUN apk add --no-cache curl tar bash procps
+COPY --from=maven:3.9.9-eclipse-temurin-11 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:3.9.9-eclipse-temurin-11 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:3.9.9-eclipse-temurin-11 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
-ARG MAVEN_VERSION=3.5.4
-ARG USER_HOME_DIR="/root"
-ARG SHA=ce50b1c91364cb77efe3776f756a6d92b76d9038b0a0782f7d53acf1e997a14d
-ARG BASE_URL=https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
-RUN mkdir -p /usr/share/maven /usr/share/maven/ref \
- && curl -fsSL -o /tmp/apache-maven.tar.gz ${BASE_URL}/apache-maven-${MAVEN_VERSION}-bin.tar.gz \
- && echo "${SHA} /tmp/apache-maven.tar.gz" | sha256sum -c - \
- && tar -xzf /tmp/apache-maven.tar.gz -C /usr/share/maven --strip-components=1 \
- && rm -f /tmp/apache-maven.tar.gz \
- && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
-
-ENV MAVEN_HOME /usr/share/maven
-ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2"
+ARG MAVEN_VERSION=3.9.9
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
## Fission builder specific section
+COPY --from=builder /builder /builder
ADD build.sh /usr/local/bin/build
EXPOSE 8001
diff --git a/jvm/builder/Makefile b/jvm/builder/Makefile
index b3fad5dc..e4691ae2 100644
--- a/jvm/builder/Makefile
+++ b/jvm/builder/Makefile
@@ -1,6 +1,6 @@
-include ../../rules.mk
.PHONY: all
-all: jvm-env-builder-img
+all: jvm-builder-img
jvm-builder-img : Dockerfile
\ No newline at end of file
diff --git a/jvm/envconfig.json b/jvm/envconfig.json
index da206d1c..0897e7fa 100644
--- a/jvm/envconfig.json
+++ b/jvm/envconfig.json
@@ -22,9 +22,9 @@
],
"name": "JVM Environment",
"readme": "https://github.com/fission/environments/tree/master/jvm",
- "runtimeVersion": "8",
+ "runtimeVersion": "22",
"shortDescription": "JVM environment based on Spring Boot server",
"status": "Stable",
- "version": "1.31.1"
+ "version": "1.31.2"
}
]
diff --git a/jvm/pom.xml b/jvm/pom.xml
index 458404fc..52cef347 100644
--- a/jvm/pom.xml
+++ b/jvm/pom.xml
@@ -11,7 +11,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.0.1.RELEASE
+ 3.3.2
diff --git a/jvm/tests/test_java_env.sh b/jvm/tests/test_java_env.sh
index 45faf7ce..c537efc0 100755
--- a/jvm/tests/test_java_env.sh
+++ b/jvm/tests/test_java_env.sh
@@ -24,7 +24,7 @@ cd jvm/examples/java
log "Creating the jar from application"
#Using Docker to build Jar so that maven & other Java dependencies are not needed on CI server
-docker run -it --rm -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven:3.5-jdk-8 mvn clean package -q
+docker run --rm -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven:3.9.9-eclipse-temurin-22-alpine mvn clean package -q
log "Creating environment for Java"
fission env create --name $env --image $JVM_RUNTIME_IMAGE --version 2 --keeparchive=true