Name: erlang Cartridge-Short-Name: ERL Cartridge-Version: '0.0.1' Display-Name: Erlang R15B Source-Url: git://github.com/thijsterlouw/openshift-erlang.git Description: "Erlang OTP framework for OpenShift" Version: '15' Versions: ['15'] License: "ASL 2.0" License-Url: http://www.apache.org/licenses/LICENSE-2.0.txt Cartridge-Vendor: spilgames Vendor: http://www.erlang.org # The Erlang cartridge is acting as a service. This cartridge does not expose itself as a # web-service by itself; in that sense it is slightly different than most other catridges. # OpenShift currently requires a web cartridge type. SUCKS. Categories: - service - erlang - experimental - web_framework Website: https://github.com/spilgames/ Cart-Data: - Key: OPENSHIFT_ERL_LOG_DIR Type: environment Description: "Directory to store application log files." - Key: OPENSHIFT_ERL_RUN_DIR Type: environment Description: "Directory to store application runtime data." - Key: OPENSHIFT_TMP_DIR Type: environment Description: "Directory to store application temporary files." - Key: OPENSHIFT_REPO_DIR Type: environemnt Description: "Application root directory where application files reside. This directory is reset every time you do a git-push" - Key: OPENSHIFT_ERL_PORT Type: environment Description: "Internal HTTP port to which the VM binds to." - Key: OPENSHIFT_ERL_CLUSTER_PORT Type: environment Description: "Internal TCP port to which the VM binds for clustering purposes." - Key: OPENSHIFT_ERL_CLUSTER_PROXY_PORT Type: environment Description: "External TCP port which is forwarded to OPENSHIFT_ERL_IP:OPENSHIFT_ERL_CLUSTER_PORT" - Key: OPENSHIFT_ERL_IP Type: environment Description: "Internal IP to which the VM binds to." - Key: OPENSHIFT_APP_DNS Type: environment Description: "Fully qualified domain name for the application." - Key: OPENSHIFT_APP_NAME Type: environment Description: "Application name" - Key: OPENSHIFT_DATA_DIR Type: environment Description: "Directory to store application data files. Preserved across git-pushes. Not shared across gears." - Key: OPENSHIFT_APP_UUID Type: environment Description: "Unique ID which identified the application. Does not change between gears." - Key: OPENSHIFT_GEAR_UUID Type: environment Description: "Unique ID which identified the gear. This value changes between gears." Suggests: Provides: - erl-15 - erlang-15 - "erlang" - "erlang (version) = 15" Requires: Conflicts: Native-Requires: Scaling: Min: 1 Max: 100 # ERLANG-CLUSTER-INFO: this event is used to inform other gears about the existance of this gear. # The other gears need to know the Host, so they can find the EPMD on the new gear, # ask which nodes are running there and then form a network. Publishes: publish-erlang-cluster: Type: "NET_TCP:erlang-cluster-info" Description: "Inform other gears about the existance of this gear" publish-http-url: Type: "NET_TCP:httpd-proxy-info" publish-gear-endpoint: Type: "NET_TCP:gear-endpoint-info" Subscribes: set-erlang-cluster: Type: "NET_TCP:erlang-cluster-info" Group-Overrides: - components: - erl-15 - web_proxy # CLUSTER_PROXY_PORT: Erlang distribution needs a public listening port, because Erlang Nodes # need to connect directly with eachother (they normally form a fully connected network). # The value of the private port is not important. # Mappins is needed to prevent errors in auto-scaled instances () Endpoints: - Private-IP-Name: IP Private-Port-Name: PORT Private-Port: 8080 Public-Port-Name: PROXY_PORT Mappings: - Frontend: "" Backend: "" Options: { websocket: true } - Frontend: "/health" Backend: "" Options: { health: true } - Private-IP-Name: IP Private-Port-Name: CLUSTER_PORT Private-Port: 30000 Public-Port-Name: CLUSTER_PROXY_PORT