Skip to content
Merged
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
4 changes: 2 additions & 2 deletions content/en/docs/usage/languages/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
```

Expand Down
6 changes: 3 additions & 3 deletions content/en/docs/usage/languages/go.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:<release-version> --builder ghcr.io/fission/go-builder:<release-version> --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).
Expand All @@ -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

Expand Down Expand Up @@ -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

Expand Down
7 changes: 4 additions & 3 deletions content/en/docs/usage/languages/java.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -137,7 +138,7 @@ JVM environment already has the spring-boot-starter-web and fission-java-core as
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.0.1.RELEASE</version>
<version>3.5.0</version>
<scope>provided</scope>
</dependency>
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
19 changes: 15 additions & 4 deletions static/data/environments.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
]
},
Expand Down Expand Up @@ -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"
}
]
},
Expand All @@ -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",
Expand Down
79 changes: 47 additions & 32 deletions tools/environments.py
Original file line number Diff line number Diff line change
@@ -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):
Expand All @@ -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
Expand All @@ -59,4 +74,4 @@ def main():
json.dump(env_json_string, file, indent=4)

if __name__ == "__main__":
main()
main()