Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions exporter/test/e2e/golang_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,4 +72,26 @@ func TestGolang_1_25_4(t *testing.T) {
g.Expect(runtimeInfo).Should(Ω.Equal(expected))
}))
_ = testenv.Test(t, feature.Feature())
}

func TestGolang_1_26_3(t *testing.T) {

appName := "golang-app-1-26-3"
containerName := "main"
image := "quay.io/insights-runtime-extractor-samples/golang-app:1.26.3"
deployment := newAppDeployment(namespace, appName, 1, containerName, image)

feature := features.New("Golang application "+image).
Setup(deployTestResource(deployment, appName)).
Teardown(undeployTestResource(deployment, appName)).
Assess("runtime info extracted", checkExtractedRuntimeInfo(namespace, "app="+appName, containerName, func(g *Ω.WithT, runtimeInfo types.ContainerRuntimeInfo) {
expected := types.ContainerRuntimeInfo{
Os: "debian",
OsVersion: "13",
Kind: "Golang",
KindVersion: "go1.26.3",
}
g.Expect(runtimeInfo).Should(Ω.Equal(expected))
}))
_ = testenv.Test(t, feature.Feature())
}
23 changes: 23 additions & 0 deletions exporter/test/e2e/java_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,3 +76,26 @@ func TestJava_25_0_1(t *testing.T) {
}))
_ = testenv.Test(t, feature.Feature())
}

func TestJava_26_0_1(t *testing.T) {

appName := "plain-java"
containerName := "main"
image := "quay.io/insights-runtime-extractor-samples/plain-java:26.0.1"
deployment := newAppDeployment(namespace, appName, 1, containerName, image)

feature := features.New("Plain Java from "+image).
Setup(deployTestResource(deployment, appName)).
Teardown(undeployTestResource(deployment, appName)).
Assess("runtime info extracted", checkExtractedRuntimeInfo(namespace, "app="+appName, containerName, func(g *Ω.WithT, runtimeInfo types.ContainerRuntimeInfo) {
expected := types.ContainerRuntimeInfo{
Os: "rhel",
OsVersion: "10.2",
Kind: "Java",
KindVersion: "26.0.1",
KindImplementer: "Eclipse Adoptium",
}
g.Expect(runtimeInfo).Should(Ω.Equal(expected))
}))
_ = testenv.Test(t, feature.Feature())
}
24 changes: 23 additions & 1 deletion exporter/test/e2e/nodejs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ func TestNodeJS_24_4_1(t *testing.T) {
func TestNodeJS_25_1_0(t *testing.T) {
appName := "node-app-25-1-0"
containerName := "nodejs-25-1-0"
// corresponded to node:24.4.1-alpine3.22
// corresponded to node:25.1.0-alpine3.22
image := "quay.io/insights-runtime-extractor-samples/node:25.1.0-alpine3.22"
deployment := newAppDeployment(namespace, appName, 1, containerName, image)

Expand All @@ -96,3 +96,25 @@ func TestNodeJS_25_1_0(t *testing.T) {
_ = testenv.Test(t, feature.Feature())
}

func TestNodeJS_26_2_0(t *testing.T) {
appName := "node-app-26-2-0"
containerName := "nodejs-26-2-0"
// corresponded to node:26.2.0-alpine3.23
image := "quay.io/insights-runtime-extractor-samples/node:26.2.0-alpine3.23"
deployment := newAppDeployment(namespace, appName, 1, containerName, image)

feature := features.New("Node.js from base image "+image).
Setup(deployTestResource(deployment, appName)).
Teardown(undeployTestResource(deployment, appName)).
Assess("runtime info extracted", checkExtractedRuntimeInfo(namespace, "app="+appName, containerName, func(g *Ω.WithT, runtimeInfo types.ContainerRuntimeInfo) {
expected := types.ContainerRuntimeInfo{
Os: "alpine",
OsVersion: "3.23.4",
Kind: "Node.js",
KindVersion: "v26.2.0",
}
g.Expect(runtimeInfo).Should(Ω.Equal(expected))
}))
_ = testenv.Test(t, feature.Feature())
}

8 changes: 8 additions & 0 deletions exporter/test/e2e/os_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,18 @@ import (
"sigs.k8s.io/e2e-framework/pkg/features"
)

func TestUbi10Minimal_10_2(t *testing.T) {
testBaseImage(t, "registry.access.redhat.com/ubi10-minimal:10.2", "rhel", "10.2")
}

func TestUbi10Minimal_10_0(t *testing.T) {
testBaseImage(t, "registry.access.redhat.com/ubi10-minimal:10.0", "rhel", "10.0")
}

func TestUbi9Minimal_9_8(t *testing.T) {
testBaseImage(t, "registry.access.redhat.com/ubi9-minimal:9.8", "rhel", "9.8")
}

func TestUbi9Minimal_9_6(t *testing.T) {
testBaseImage(t, "registry.access.redhat.com/ubi9-minimal:9.6", "rhel", "9.6")
}
Expand Down
52 changes: 52 additions & 0 deletions exporter/test/e2e/quarkus_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,58 @@ func TestNativeQuarkus_3_29_2(t *testing.T) {
_ = testenv.Test(t, feature.Feature())
}

func TestQuarkus_3_36_0(t *testing.T) {

appName := "quarkus"
containerName := "main"
image := "quay.io/insights-runtime-extractor-samples/quarkus:3.36.0"
deployment := newAppDeployment(namespace, appName, 1, containerName, image)

feature := features.New("Quarkus from "+image).
Setup(deployTestResource(deployment, appName)).
Teardown(undeployTestResource(deployment, appName)).
Assess("runtime info extracted", checkExtractedRuntimeInfo(namespace, "app="+appName, containerName, func(g *Ω.WithT, runtimeInfo types.ContainerRuntimeInfo) {
expected := types.ContainerRuntimeInfo{
Os: "rhel",
OsVersion: "8.10",
Kind: "Java",
KindVersion: "21.0.4",
KindImplementer: "Red Hat, Inc.",
Runtimes: []types.RuntimeComponent{{
Name: "Quarkus",
Version: "3.36.0",
}},
}
g.Expect(runtimeInfo).Should(Ω.Equal(expected))
}))
_ = testenv.Test(t, feature.Feature())
}

func TestNativeQuarkus_3_36_0(t *testing.T) {

appName := "native-quarkus"
containerName := "main"
image := "quay.io/insights-runtime-extractor-samples/native-quarkus:3.36.0"
deployment := newAppDeployment(namespace, appName, 1, containerName, image)

feature := features.New("Native Quarkus from "+image).
Setup(deployTestResource(deployment, appName)).
Teardown(undeployTestResource(deployment, appName)).
Assess("runtime info extracted", checkExtractedRuntimeInfo(namespace, "app="+appName, containerName, func(g *Ω.WithT, runtimeInfo types.ContainerRuntimeInfo) {
expected := types.ContainerRuntimeInfo{
Os: "rhel",
OsVersion: "8.10",
Kind: "GraalVM",
Runtimes: []types.RuntimeComponent{{
Name: "Quarkus",
Version: "3.36.0",
}},
}
g.Expect(runtimeInfo).Should(Ω.Equal(expected))
}))
_ = testenv.Test(t, feature.Feature())
}

func TestRedHatBuildOfQuarkus_3_8_6(t *testing.T) {

appName := "quarkus"
Expand Down
27 changes: 27 additions & 0 deletions exporter/test/e2e/spring_boot_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,3 +88,30 @@ func TestSpringBootJar_3_5_3(t *testing.T) {
}))
_ = testenv.Test(t, feature.Feature())
}

func TestSpringBootJar_4_0_6(t *testing.T) {

appName := "spring-boot"
containerName := "main"
image := "quay.io/insights-runtime-extractor-samples/spring-boot:4.0.6"
deployment := newAppDeployment(namespace, appName, 1, containerName, image)

feature := features.New("Spring Boot from "+image).
Setup(deployTestResource(deployment, appName)).
Teardown(undeployTestResource(deployment, appName)).
Assess("runtime info extracted", checkExtractedRuntimeInfo(namespace, "app="+appName, containerName, func(g *Ω.WithT, runtimeInfo types.ContainerRuntimeInfo) {
expected := types.ContainerRuntimeInfo{
Os: "rhel",
OsVersion: "8.10",
Kind: "Java",
KindVersion: "21.0.6",
KindImplementer: "Red Hat, Inc.",
Runtimes: []types.RuntimeComponent{{
Name: "Spring Boot",
Version: "4.0.6",
}},
}
g.Expect(runtimeInfo).Should(Ω.Equal(expected))
}))
_ = testenv.Test(t, feature.Feature())
}
27 changes: 27 additions & 0 deletions exporter/test/e2e/tomcat_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,4 +117,31 @@ func TestJBossWebServer_6_1_0(t *testing.T) {
g.Expect(runtimeInfo).Should(Ω.Equal(expected))
}))
_ = testenv.Test(t, feature.Feature())
}

func TestJBossWebServer_6_2_0(t *testing.T) {

appName := "jboss-webserver-6-2-0"
containerName := "main"
image := "registry.redhat.io/jboss-webserver-6/jws62-openjdk21-openshift-rhel9@sha256:1ba4324dd5bc243e50be58b0fc93e3e100b0b4366801daa37c60dcefeb20562d"
deployment := newAppDeployment(namespace, appName, 1, containerName, image)

feature := features.New("JBoss WebServer 6.2.0 from base image "+image).
Setup(deployTestResource(deployment, appName)).
Teardown(undeployTestResource(deployment, appName)).
Assess("runtime info extracted", checkExtractedRuntimeInfo(namespace, "app="+appName, containerName, func(g *Ω.WithT, runtimeInfo types.ContainerRuntimeInfo) {
expected := types.ContainerRuntimeInfo{
Os: "rhel",
OsVersion: "9.7",
Kind: "Java",
KindVersion: "21.0.10",
KindImplementer: "Red Hat, Inc.",
Runtimes: []types.RuntimeComponent{{
Name: "Apache Tomcat",
Version: "10.1.49.redhat-00006",
}},
}
g.Expect(runtimeInfo).Should(Ω.Equal(expected))
}))
_ = testenv.Test(t, feature.Feature())
}
28 changes: 28 additions & 0 deletions exporter/test/e2e/wildfly_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -146,4 +146,32 @@ func TestWildFly_38_0_0_Final(t *testing.T) {
g.Expect(runtimeInfo).Should(Ω.Equal(expected))
}))
_ = testenv.Test(t, feature.Feature())
}

func TestWildFly_40_0_0_Final(t *testing.T) {

appName := "wildfly-40-0-0-app"
containerName := "main"
// corresponded to quay.io/wildfly/wildfly:40.0.0.Final-jdk21
image := "quay.io/wildfly/wildfly@sha256:d974604dafe72557654d834d1dec060e953429b7ecf3d7dac3988d95514a3caa"
deployment := newAppDeployment(namespace, appName, 1, containerName, image)

feature := features.New("WildFly from "+image).
Setup(deployTestResource(deployment, appName)).
Teardown(undeployTestResource(deployment, appName)).
Assess("runtime info extracted", checkExtractedRuntimeInfo(namespace, "app="+appName, containerName, func(g *Ω.WithT, runtimeInfo types.ContainerRuntimeInfo) {
expected := types.ContainerRuntimeInfo{
Os: "rhel",
OsVersion: "9.8",
Kind: "Java",
KindVersion: "21.0.11",
KindImplementer: "Eclipse Adoptium",
Runtimes: []types.RuntimeComponent{{
Name: "WildFly",
Version: "40.0.0.Final",
}},
}
g.Expect(runtimeInfo).Should(Ω.Equal(expected))
}))
_ = testenv.Test(t, feature.Feature())
}
19 changes: 17 additions & 2 deletions runtime-samples/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
.PHONY: golang-app-1.22.6 golang-app-1.24.1 golang-app-1.25.4 quarkus-3.13.0 quarkus-3.15.1 quarkus-3.19.3 quarkus-3.24.4 quarkus-3.29.2 spring-boot-3.1.4 spring-boot-3.4.3 spring-boot-3.5.3 plain-java-17.0.13 plain-java-24.0.1 plain-java-25.0.1 python-app-2.7.18 python-app-3.9.19 python-app-3.13.2 python-app-3.14.0 nodejs-app-22.6.0 nodejs-app-22.14.0 nodejs-app-24.4.1 nodejs-app-25.1.0 RHBQ-3.8.6 RHBQ-3.15.3 RHBQ-3.20.1 RHBQ-3.27.0 debian-11 debian-12 debian-13 oracle-linux-8 oracle-linux-10
.PHONY: golang-app-1.22.6 golang-app-1.24.1 golang-app-1.25.4 golang-app-1.26.3 quarkus-3.13.0 quarkus-3.15.1 quarkus-3.19.3 quarkus-3.24.4 quarkus-3.29.2 quarkus-3.36.0 spring-boot-3.1.4 spring-boot-3.4.3 spring-boot-3.5.3 spring-boot-4.0.6 plain-java-17.0.13 plain-java-24.0.1 plain-java-25.0.1 plain-java-26.0.1 python-app-2.7.18 python-app-3.9.19 python-app-3.13.2 python-app-3.14.0 nodejs-app-22.6.0 nodejs-app-22.14.0 nodejs-app-24.4.1 nodejs-app-25.1.0 nodejs-app-26.2.0 RHBQ-3.8.6 RHBQ-3.15.3 RHBQ-3.20.1 RHBQ-3.27.0 debian-11 debian-12 debian-13 oracle-linux-8 oracle-linux-10

all: quarkus-3.13.0 quarkus-3.15.1 quarkus-3.19.3 quarkus-3.24.4 quarkus-3.29.2 spring-boot-3.1.4 spring-boot-3.4.3 spring-boot-3.5.3 golang-app-1.22.6 golang-app-1.24.1 golang-app-1.25.4 plain-java-17.0.13 plain-java-24.0.1 plain-java-25.0.1 python-app-2.7.18 python-app-3.9.19 python-app-3.13.2 python-app-3.14.0 nodejs-app-22.6.0 nodejs-app-22.14.0 nodejs-app-24.4.1 nodejs-app-25.1.0 RHBQ-3.8.6 RHBQ-3.15.3 RHBQ-3.20.1 RHBQ-3.27.0 debian-11 debian-12 debian-13 oracle-linux-8 oracle-linux-10
all: quarkus-3.13.0 quarkus-3.15.1 quarkus-3.19.3 quarkus-3.24.4 quarkus-3.29.2 quarkus-3.36.0 spring-boot-3.1.4 spring-boot-3.4.3 spring-boot-3.5.3 spring-boot-4.0.6 golang-app-1.22.6 golang-app-1.24.1 golang-app-1.25.4 golang-app-1.26.3 plain-java-17.0.13 plain-java-24.0.1 plain-java-25.0.1 plain-java-26.0.1 python-app-2.7.18 python-app-3.9.19 python-app-3.13.2 python-app-3.14.0 nodejs-app-22.6.0 nodejs-app-22.14.0 nodejs-app-24.4.1 nodejs-app-25.1.0 nodejs-app-26.2.0 RHBQ-3.8.6 RHBQ-3.15.3 RHBQ-3.20.1 RHBQ-3.27.0 debian-11 debian-12 debian-13 oracle-linux-8 oracle-linux-10

nodejs-app-22.6.0:
cd ./nodejs/22.6.0 && make
Expand All @@ -14,6 +14,9 @@ nodejs-app-24.4.1:
nodejs-app-25.1.0:
cd ./nodejs/25.1.0 && make

nodejs-app-26.2.0:
cd ./nodejs/26.2.0 && make

python-app-2.7.18:
cd ./python/2.7.18 && make

Expand All @@ -35,6 +38,9 @@ golang-app-1.24.1:
golang-app-1.25.4:
cd ./golang-app/1.25.4 && make

golang-app-1.26.3:
cd ./golang-app/1.26.3 && make

quarkus-3.13.0:
cd ./quarkus/3.13.0. && make

Expand All @@ -50,6 +56,9 @@ quarkus-3.24.4:
quarkus-3.29.2:
cd ./quarkus/3.29.2 && make

quarkus-3.36.0:
cd ./quarkus/3.36.0 && make

spring-boot-3.1.4:
cd ./spring-boot/3.1.4 && make

Expand All @@ -59,6 +68,9 @@ spring-boot-3.4.3:
spring-boot-3.5.3:
cd ./spring-boot/3.5.3 && make

spring-boot-4.0.6:
cd ./spring-boot/4.0.6 && make

RHBQ-3.8.6:
cd ./RHBQ/3.8.6 && make

Expand All @@ -80,6 +92,9 @@ plain-java-24.0.1:
plain-java-25.0.1:
cd ./plain-java/25.0.1 && make

plain-java-26.0.1:
cd ./plain-java/26.0.1 && make

debian-11:
cd ./debian/11 && make

Expand Down
9 changes: 9 additions & 0 deletions runtime-samples/golang-app/1.26.3/Containerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# corresponded to 1.26.3
FROM golang@sha256:2d6c80227255c3112a4d08e67ba98e58efd3846daf15d9d7d4c389565d881b1a

WORKDIR /workspace/golang-app
COPY . .
ARG GO_LDFLAGS=""
RUN CGO_ENABLED=0 GOOS=linux GO111MODULE=on make build

ENTRYPOINT [ "/workspace/golang-app/http-server" ]
7 changes: 7 additions & 0 deletions runtime-samples/golang-app/1.26.3/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.DEFAULT_GOAL = push

build:
go build -o http-server http-server.go

push:
./deploy.sh
20 changes: 20 additions & 0 deletions runtime-samples/golang-app/1.26.3/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# golang-app
# Runtime sample for the insights-runtime-extractor

To build the container image and make it available to the OpenShift internal image
registry, run:

```shell script
make
```

# Workload Runtime Information:

```json
"runtimeInfo": {
"os": "debian",
"osVersion": "13",
"kind": "Golang",
"kindVersion": "go1.26.3",
}
```
10 changes: 10 additions & 0 deletions runtime-samples/golang-app/1.26.3/deploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash

IMAGE_NAME=golang-app:1.26.3
CONTAINER_REGISTRY=quay.io/insights-runtime-extractor-samples
IMAGE=${CONTAINER_REGISTRY}/${IMAGE_NAME}

echo "Building ${IMAGE}"
podman build --platform linux/amd64 -t ${IMAGE} .
echo "Pushing ${IMAGE}"
podman push ${IMAGE}
Loading