diff --git a/content/en/docs/usage/languages/_index.md b/content/en/docs/usage/languages/_index.md index 6f4e541e..47c4d382 100644 --- a/content/en/docs/usage/languages/_index.md +++ b/content/en/docs/usage/languages/_index.md @@ -70,8 +70,8 @@ Pass the `--version` flag to `fission environment create`: ```bash fission environment create --name go \ - --image ghcr.io/fission/go-env-1.23 \ - --builder ghcr.io/fission/go-builder-1.23 \ + --image ghcr.io/fission/go-env-1.26 \ + --builder ghcr.io/fission/go-builder-1.26 \ --version 3 ``` diff --git a/content/en/docs/usage/languages/go.md b/content/en/docs/usage/languages/go.md index 4d91481b..e1ca141d 100644 --- a/content/en/docs/usage/languages/go.md +++ b/content/en/docs/usage/languages/go.md @@ -32,7 +32,7 @@ Please use the `fission release version` as image tag instead of `latest` when a $ fission environment create --name go --image ghcr.io/fission/go-env: --builder ghcr.io/fission/go-builder: --version 3 # Example -$ fission environment create --name go --image ghcr.io/fission/go-env-1.23 --builder ghcr.io/fission/go-builder-1.23 +$ fission environment create --name go --image ghcr.io/fission/go-env-1.26 --builder ghcr.io/fission/go-builder-1.26 ``` You can find all images and image tags at following table. To get an overall overview of all available images, please have a look at our [Docker Hub page](https://hub.docker.com/u/fission). @@ -41,7 +41,7 @@ You can find all images and image tags at following table. To get an overall ove | Go Version | Image | Builder Image | |------------|------------|-----------| -| 1.23 | [ghcr.io/fission/go-env-1.23](https://github.com/fission/environments/pkgs/container/go-env-1.23/versions?filters%5Bversion_type%5D=tagged) | [ghcr.io/fission/go-builder-1.23](https://github.com/fission/environments/pkgs/container/go-builder-1.23/versions?filters%5Bversion_type%5D=tagged) | +| 1.26 | [ghcr.io/fission/go-env-1.26](https://github.com/fission/environments/pkgs/container/go-env-1.26/versions?filters%5Bversion_type%5D=tagged) | [ghcr.io/fission/go-builder-1.26](https://github.com/fission/environments/pkgs/container/go-builder-1.26/versions?filters%5Bversion_type%5D=tagged) | ### Write a simple function in Go @@ -318,7 +318,7 @@ See full image list [here](#go-environment-image-list) #### Go module support -Please use image version equal or after `ghcr.io/fission/go-env-1.23`. +Please use image version equal or after `ghcr.io/fission/go-env-1.26`. Initialize your project diff --git a/content/en/docs/usage/languages/java.md b/content/en/docs/usage/languages/java.md index e6844dc2..ba6bd11f 100644 --- a/content/en/docs/usage/languages/java.md +++ b/content/en/docs/usage/languages/java.md @@ -4,8 +4,9 @@ description: "Writing Java functions with fission" weight: 10 --- -Fission supports functions written in Java and runs then on JVM. -Current JVM environment is based on openjdk8 and uses Spring Boot as framework. +Fission supports functions written in Java and runs them on the JVM. +The JVM environment runs on Java 25 (LTS, eclipse-temurin) and uses Spring Boot 3.5.x as its framework. +A `jvm-jersey` variant is also available that runs the Jersey RESTful Web Services framework on Java 25. ### Before you start @@ -137,7 +138,7 @@ JVM environment already has the spring-boot-starter-web and fission-java-core as org.springframework.boot spring-boot-starter-web - 2.0.1.RELEASE + 3.5.0 provided diff --git a/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/kafka.md b/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/kafka.md index 0ddea51c..e4c8862a 100644 --- a/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/kafka.md +++ b/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/kafka.md @@ -175,7 +175,7 @@ $ go mod init $ go mod tidy $ zip -qr kafka.zip * -$ fission env create --name go --image ghcr.io/fission/go-env-1.23 --builder ghcr.io/fission/go-builder-1.23 +$ fission env create --name go --image ghcr.io/fission/go-env-1.26 --builder ghcr.io/fission/go-builder-1.26 $ fission package create --env go --src kafka.zip $ fission fn create --name producer --env go --pkg kafka-zip-s2pj --entrypoint Handler $ fission package info --name kafka-zip-s2pj diff --git a/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/nats-jetstream.md b/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/nats-jetstream.md index 8adfe6d5..0f60da82 100644 --- a/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/nats-jetstream.md +++ b/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/nats-jetstream.md @@ -74,7 +74,7 @@ A reference producer implementation (standalone variant of the same logic) lives Steps for deploying producer function: ```sh -fission environment create --name go --image ghcr.io/fission/go-env-1.23 --builder ghcr.io/fission/go-builder-1.23 +fission environment create --name go --image ghcr.io/fission/go-env-1.26 --builder ghcr.io/fission/go-builder-1.26 fission fn create --name producer --env go --src "producer/*" --entrypoint Handler ``` diff --git a/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/nats-streaming.md b/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/nats-streaming.md index b77ca045..baaee6ca 100644 --- a/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/nats-streaming.md +++ b/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/nats-streaming.md @@ -211,7 +211,7 @@ func Handler(w http.ResponseWriter, r *http.Request) { Let's create the environment and function: ```bash -fission environment create --name go --image ghcr.io/fission/go-env-1.23 --builder ghcr.io/fission/go-builder-1.23 +fission environment create --name go --image ghcr.io/fission/go-env-1.26 --builder ghcr.io/fission/go-builder-1.26 fission fn create --name helloworld --env go --src hello.go --entrypoint Handler ``` diff --git a/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/rabbitmq.md b/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/rabbitmq.md index c894a289..3565946d 100644 --- a/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/rabbitmq.md +++ b/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/rabbitmq.md @@ -217,7 +217,7 @@ Create a zip archive of `producer` folder using `zip -j producer.zip producer/*` Let's create the environment, package and function: ```bash -fission env create --name go --image ghcr.io/fission/go-env-1.23 --builder ghcr.io/fission/go-builder-1.23 +fission env create --name go --image ghcr.io/fission/go-env-1.26 --builder ghcr.io/fission/go-builder-1.26 fission package create --src producer.zip --env go --name rabbitmq-producer fission fn create --spec --name rabbitmq-producer --env go --pkg rabbitmq-producer \ --entrypoint Handler --secret keda-rabbitmq-secret @@ -282,7 +282,7 @@ Read our giude on how to use [Fission spec](https://fission.io/docs/usage/spec/) ```bash fission spec init -fission env create --spec --name go --image ghcr.io/fission/go-env-1.23 --builder ghcr.io/fission/go-builder-1.23 +fission env create --spec --name go --image ghcr.io/fission/go-env-1.26 --builder ghcr.io/fission/go-builder-1.26 fission package create --spec --src producer.zip --env go --name rabbitmq-producer fission package create --spec --src consumer.zip --env go --name rabbitmq-consumer fission fn create --spec --name rabbitmq-producer --env go --pkg rabbitmq-producer \ diff --git a/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/redis.md b/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/redis.md index 563a0dcf..2a83f5e6 100644 --- a/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/redis.md +++ b/content/en/docs/usage/triggers/message-queue-trigger-kind-keda/redis.md @@ -96,7 +96,7 @@ $ go mod init $ go mod tidy $ zip -qr redis.zip * -$ fission env create --name goenv --image ghcr.io/fission/go-env-1.23 --builder ghcr.io/fission/go-builder-1.23 +$ fission env create --name goenv --image ghcr.io/fission/go-env-1.26 --builder ghcr.io/fission/go-builder-1.26 $ fission package create --env goenv --src redis.zip $ fission fn create --name producerfunc --env goenv --pkg redis-zip-zlre --entrypoint Handler $ fission package info --name redis-zip-zlre diff --git a/static/data/environments.json b/static/data/environments.json index d4bb97fa..c6f16d08 100644 --- a/static/data/environments.json +++ b/static/data/environments.json @@ -27,8 +27,8 @@ "builder": "go-builder" }, { - "main": "go-env-1.23", - "builder": "go-builder-1.23" + "main": "go-env-1.26", + "builder": "go-builder-1.26" } ] }, @@ -82,8 +82,8 @@ "repo": "https://github.com/fission/environments/tree/master/jvm-jersey", "images": [ { - "main": "jvm-jersey-env-22", - "builder": "jvm-jersey-builder-22" + "main": "jvm-jersey-env-25", + "builder": "jvm-jersey-builder-25" } ] }, @@ -108,6 +108,17 @@ } ] }, + { + "name": ".NET 8", + "logo": "/images/lang-logo/dotnetcore-logo.svg", + "repo": "https://github.com/fission/environments/tree/master/dotnet8", + "images": [ + { + "main": "dotnet8-env", + "builder": "dotnet8-builder" + } + ] + }, { "name": "Perl", "logo": "/images/lang-logo/perl-logo.svg", diff --git a/tools/environments.py b/tools/environments.py index 9fcfc0d6..6636b026 100644 --- a/tools/environments.py +++ b/tools/environments.py @@ -1,19 +1,27 @@ import json, sys -env_dict = { - 'JVM Environment': 'Java', - 'JVM Jersey Environment': 'Java (JVM-Jersey)', - 'Ruby Environment': 'Ruby', - 'Python Environment': 'Python', - 'Python FastAPI Environment': 'Python (FastAPI)', - 'Fission Binary Environment': 'Misc', - 'PHP Environment': 'PHP', - 'Dotnet 2 Environment': '.NET Core', - 'Go Environment': 'Go', - 'Dotnet Environment': '.NET', - 'Perl Environment': 'Perl', - 'Tensorflow Serving Environment': 'TensorFlow', - 'Nodejs Environment': 'Node.js', +# Map each upstream environment to a site catalog entry. +# We key by the upstream "image" (runtime image) name because it is unique and +# stable, whereas the upstream "name" field is not: jvm and jvm-jersey both use +# "JVM Environment". The image name also matches the GHCR package name exactly. +image_dict = { + 'jvm-env': 'Java', + 'jvm-jersey-env-25': 'Java (JVM-Jersey)', + 'ruby-env': 'Ruby', + 'python-env': 'Python', + 'python-fastapi-env': 'Python (FastAPI)', + 'binary-env': 'Misc', + 'php-env': 'PHP', + 'dotnet20-env': '.NET Core', + 'go-env': 'Go', + 'go-env-1.26': 'Go', + 'dotnet-env': '.NET', + 'dotnet8-env': '.NET 8', + 'perl-env': 'Perl', + 'tensorflow-serving-env': 'TensorFlow', + 'node-env': 'Node.js', + 'node-env-22': 'Node.js', + 'node-env-debian': 'Node.js', } def load_environment_json(file_name): @@ -29,23 +37,30 @@ def create_env_string(src_envs, dst_envs): for src_env in src_envs: num_envs = len(src_env) for i in range(0, num_envs): - if name == env_dict[src_env[i]['name']]: - if 'image' in src_env[i] and 'builder' in src_env[i]: - data_list.append({ - "main": src_env[i]['image'], - "builder": src_env[i]['builder'] - }) - elif 'image' in src_env[i]: - data_list.append({ - "main": src_env[i]['image'] - }) - elif 'builder' in src_env[i]: - data_list.append({ - "builder": src_env[i]['builder'] - }) - else: - print("image and builder not present for", src_env[i]['name']) - sys.exit(1) + src = src_env[i] + image = src.get('image') + if image not in image_dict: + print("no site mapping for upstream image", image, + "(", src.get('name'), ")") + sys.exit(1) + if image_dict[image] != name: + continue + if 'image' in src and 'builder' in src: + data_list.append({ + "main": src['image'], + "builder": src['builder'] + }) + elif 'image' in src: + data_list.append({ + "main": src['image'] + }) + elif 'builder' in src: + data_list.append({ + "builder": src['builder'] + }) + else: + print("image and builder not present for", src.get('name')) + sys.exit(1) dst_env['images'] = data_list return dst_envs @@ -59,4 +74,4 @@ def main(): json.dump(env_json_string, file, indent=4) if __name__ == "__main__": - main() \ No newline at end of file + main()