{"id":18299699,"url":"https://github.com/containersolutions/mesosframework","last_synced_at":"2025-08-17T13:33:09.795Z","repository":{"id":83606215,"uuid":"53590337","full_name":"ContainerSolutions/mesosframework","owner":"ContainerSolutions","description":"Create a mesos framework with just an application.properties file!","archived":false,"fork":false,"pushed_at":"2016-04-18T07:22:44.000Z","size":40,"stargazers_count":11,"open_issues_count":1,"forks_count":4,"subscribers_count":47,"default_branch":"master","last_synced_at":"2025-08-17T13:32:50.863Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ContainerSolutions.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-03-10T14:22:09.000Z","updated_at":"2020-08-18T11:44:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"57f9fcc1-c515-440b-8e4b-b99a1eb13977","html_url":"https://github.com/ContainerSolutions/mesosframework","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ContainerSolutions/mesosframework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ContainerSolutions%2Fmesosframework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ContainerSolutions%2Fmesosframework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ContainerSolutions%2Fmesosframework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ContainerSolutions%2Fmesosframework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ContainerSolutions","download_url":"https://codeload.github.com/ContainerSolutions/mesosframework/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ContainerSolutions%2Fmesosframework/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270856563,"owners_count":24657688,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T15:10:00.528Z","updated_at":"2025-08-17T13:33:09.781Z","avatar_url":"https://github.com/ContainerSolutions.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mesos-framework\nCreate a mesos framework with just an application.properties file!\n\n# Introduction\nWriting Frameworks for Apache Mesos is hard. We created the [Mesos Starter](www.github.com/containersolutions/mesos-starter) project to reduce the amount of boilerplate.\n\nMesosFramework is a pre-built version of Mesos-Starter, that allows users to run a binary or Docker container as a Framework via a single configuration file.\n\n# Features\n(Most features come from the [Mesos-Starter](https://github.com/ContainerSolutions/mesos-starter) project)\n\n- [x] State stored in ZooKeeper\n- [x] Mesos Authorisation\n- [ ] ZooKeeper Authorisation (requires testing)\n- [x] Jar mode (no docker)\n- [x] Resource specification (including port)\n- [x] Import Kibana.yml settings file\n- [x] \"Spread\" orchestration strategy (Spreads instances across distinct hosts)\n- [x] Decoupled from Kibana. Use any version.\n- [x] Decoupled from Mesos. Use any version 0.25+\n- [x] Horizontal scaling via JMX\n\nAdded by MesosFramework:\n- [x] Live horizontal scaling via a REST endpoint\n- [x] Single endpoint to check health of all instances\n- [x] Customizable mesos healthcheck command\n\n# Quick start\nOnce you have decided upon a binary or Docker container to run, you simply need to call:\n\n`docker run -d containersol/mesosframework:latest --spring.config.location=your.application.properties`\n\nor if you don't want to use Docker:\n\n`java -jar mesosframework-0.0.1.jar --spring.config.location=your.application.properties`\n\n# Application properties\nAll options can be specified as either:\n- A cli parameter: `--mesos.command=pwd`\n- A properties file: `mesos.command=pwd`\n- Java options: `-Dmesos.command=pwd`\n- Environmental variables: `MESOS_COMMAND=pwd`\nIn that order of preference.\n\nTo pass a configuration file, the following property must be set:\n- `--spring.config.location=my.properties` (Or the env var `SPRING_CONFIG_LOCATION`, etc.)\n\nValid configration options are specified by the [Mesos Starter](www.github.com/containersolutions/mesos-starter) project.\n\nPlease see the [examples](./docs/examples) folder for examples.\n\nYou can also provide new options with `${my.option}` inside the properties file. Now you can provide that option with `--my.option=Hi!`\n\n# Extensions to the Mesos-starter project\nThis project adds to the Mesos-starter project on the following points:\n\n## Horizontal scaling\nIt adds an endpoint at the following location to control the number of instances in the cluster. The endpoint matches the properties file definition of the same name:\n\n`GET /mesos/resources/count` Returns the current number of requested instances. For example to get the current number of instances:\n\n```\n$ curl -s http://localhost:8080/mesos/resources/count\n3\n```\n\n`POST /mesos/resources/count` with a body of type `Integer` will set the number of requested instances. For example, to set the number of instances to 1:\n\n```\n$ curl -XPOST -H 'Content-Type: text/plain' http://localhost:8080/mesos/resources/count -d 1\n```\n\n## Healthcheck\nAn extra healthchecks to monitor the state of the running tasks is exposed.\n \n`GET /health` returns the health of the running tasks. If `count == running instances` the health will be `UP`. For example:\n \n```\n$ curl http://localhost:8080/health\n{\"status\":\"UP\",\"task\":{\"status\":\"UP\",\"mesos.resources.count\":1,\"instances\":1,\"TASK_STAGING\":0,\"TASK_STARTING\":0,\"TASK_RUNNING\":3,\"TASK_KILLING\":0,\"TASK_FINISHED\":0,\"TASK_FAILED\":0,\"TASK_KILLED\":0,\"TASK_LOST\":0,\"TASK_ERROR\":0},\"diskSpace\":{\"status\":\"UP\",\"total\":9896046592,\"free\":2796249088,\"threshold\":10485760}}%  \n```\n\n# Sponsors\nThis project is sponsored by Cisco Cloud Services.\n\n# License\nApache License 2.0","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontainersolutions%2Fmesosframework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcontainersolutions%2Fmesosframework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontainersolutions%2Fmesosframework/lists"}