# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: openwhisk-runtimes
  namespace: nuvolaris
data:
  runtimes.json: |
    {
        "description": [
            "This file describes the different languages (aka. managed action runtimes) supported by the system",
            "as well as blackbox images that support the runtime specification.",
            "Only actions with runtime families / kinds defined here can be created / read / updated / deleted / invoked.",
            "Define a list of runtime families (example: 'nodejs') with at least one kind per family (example: 'nodejs:14').",
            "Each runtime family needs a default kind (default: true).",
            "When removing or renaming runtime families or runtime kinds from this file, preexisting actions",
            "with the affected kinds can no longer be read / updated / deleted / invoked. In order to remove or rename",
            "runtime families or runtime kinds, mark all affected runtime kinds as deprecated (deprecated: true) and",
            "perform a manual migration of all affected actions.",
            "",
            "This file is meant to list all stable runtimes supported by the Apache Openwhisk community."
        ],
        "runtimes": {
            "nodejs": [
                {
                    "kind": "nodejs:21",
                    "default": true,
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-nodejs",
                        "tag": "v21-2409142109"
                    },
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    },                
                    "stemCells": [
                        {
                            "initialCount": 1,
                            "memory": "256 MB",
                            "reactive": {
                                "minCount": 1,
                                "maxCount": 4,
                                "ttl": "2 minutes",
                                "threshold": 1,
                                "increment": 1
                            }
                        }
                    ]
                },            
                {
                    "kind": "nodejs:20",
                    "default": false,
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-nodejs",
                        "tag": "v20-2409142109"
                    },
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    }
                },
                {
                    "kind": "nodejs:18",
                    "default": false,
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-nodejs",
                        "tag": "v18-2409142109"
                    },
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    }
                }           
            ],
            "python": [
                {
                    "kind": "python:3",
                    "default": true,
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-python",
                        "tag": "v3.12-2501141314"
                    },
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    },
                    "stemCells": [
                        {
                            "initialCount": 1,
                            "memory": "256 MB",
                            "reactive": {
                                "minCount": 1,
                                "maxCount": 4,
                                "ttl": "2 minutes",
                                "threshold": 1,
                                "increment": 1
                            }
                        }
                    ]
                },
                {
                    "kind": "python:3.11",
                    "default": false,
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-python",
                        "tag": "v3.11-2409142109"
                    },
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    }
                },
                {
                    "kind": "python:3.12",
                    "default": false,
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-python",
                        "tag": "v3.12-2409142109"
                    },
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    }
                },
                {
                    "kind": "python:3.11ca",
                    "default": false,
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-python",
                        "tag": "v3.11ca-2409142109"
                    },
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    }
                },
                {
                    "kind": "python:310",
                    "default": false,
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-python",
                        "tag": "v3.10-2409142109"
                    },
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    }
                }
            ],
            "go": [
                {
                    "kind": "go:1.22",
                    "default": true,
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    },
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-go",
                        "tag": "v1.22-2409142109"
                    }
                },
                {
                    "kind": "go:1.21",
                    "default": false,
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    },
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-go",
                        "tag": "v1.21-2409142109"
                    }
                },
                {
                    "kind": "go:1.20",
                    "default": false,
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    },
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-go",
                        "tag": "v1.20-2409142109"
                    }
                },
                {
                    "kind": "go:1.22proxy",
                    "default": false,
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    },
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-go",
                        "tag": "v1.22proxy-2409251000"
                    }
                },                         
                {
                    "kind": "go:1.20mf",
                    "default": false,
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    },
                    "image": {
                        "prefix": "ghcr.io/nuvolaris",
                        "name": "go-nuvolaris-metaflow",
                        "tag": "bc86ab6"
                    }
                }                       
            ],
            "java": [
                {
                    "kind": "java:8",
                    "default": true,
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-java",
                        "tag": "v8-2409142109"
                    },
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    },
                    "requireMain": true
                },
                {
                    "kind": "java:11",
                    "default": false,
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-java",
                        "tag": "v11-2409142109"
                    },
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    },
                    "requireMain": true
                },
                {
                    "kind": "java:17",
                    "default": false,
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-java",
                        "tag": "v17-2409142109"
                    },
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    },
                    "requireMain": true
                },
                {
                    "kind": "java:21",
                    "default": false,
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-java",
                        "tag": "v21-2409142109"
                    },
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    },
                    "requireMain": true
                }            
            ],
            "php": [
                {
                    "kind": "php:8.3",
                    "default": true,
                    "deprecated": false,
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-php",
                        "tag": "v8.3-2409142109"
                    },
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    }
                },            
                {
                    "kind": "php:8.2",
                    "default": false,
                    "deprecated": false,
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-php",
                        "tag": "v8.2-2409142109"
                    },
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    }
                },
                {
                    "kind": "php:8.1",
                    "default": false,
                    "deprecated": false,
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-php",
                        "tag": "v8.1-2409142109"
                    },
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    }
                },
                {
                    "kind": "php:8.0",
                    "default": false,
                    "deprecated": false,
                    "image": {
                        "prefix": "apache",
                        "name": "openserverless-runtime-php",
                        "tag": "v8.0-2409142109"
                    },
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    }
                }
            ],
            "ruby": [
                {
                    "kind": "ruby:2.5",
                    "default": true,
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    },
                    "image": {
                        "prefix": "openwhisk",
                        "name": "action-ruby-v2.5",
                        "tag": "nightly"
                    }
                }
            ],
            "dotnet": [
                {
                    "kind": "dotnet:2.2",
                    "default": true,
                    "deprecated": false,
                    "requireMain": true,
                    "image": {
                        "prefix": "openwhisk",
                        "name": "action-dotnet-v2.2",
                        "tag": "nightly"
                    },
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    }
                },
                {
                    "kind": "dotnet:3.1",
                    "default": false,
                    "deprecated": false,
                    "requireMain": true,
                    "image": {
                        "prefix": "openwhisk",
                        "name": "action-dotnet-v3.1",
                        "tag": "nightly"
                    },
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    }
                }
            ],
            "rust": [
                {
                    "kind": "rust:1.34",
                    "default": true,
                    "image": {
                        "prefix": "openwhisk",
                        "name": "action-rust-v1.34",
                        "tag": "nightly"
                    },
                    "deprecated": false,
                    "attached": {
                        "attachmentName": "codefile",
                        "attachmentType": "text/plain"
                    }
                }
            ]
        },
        "blackboxes": [
            {
                "prefix": "openwhisk",
                "name": "dockerskeleton",
                "tag": "nightly"
            }
        ]
    }