{"id":20852723,"url":"https://github.com/ninesstack/nmesos","last_synced_at":"2025-05-12T05:30:57.002Z","repository":{"id":41396220,"uuid":"75206332","full_name":"NinesStack/nmesos","owner":"NinesStack","description":"CLI tool to deploy to Mesos using Singularity","archived":false,"fork":false,"pushed_at":"2023-11-05T14:24:03.000Z","size":1631,"stargazers_count":7,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"trunk","last_synced_at":"2025-04-01T00:51:09.757Z","etag":null,"topics":["cli","mesos","singularity","tool"],"latest_commit_sha":null,"homepage":"","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NinesStack.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-11-30T16:38:10.000Z","updated_at":"2023-05-09T06:20:34.000Z","dependencies_parsed_at":"2023-01-31T09:15:17.961Z","dependency_job_id":"cbb894f4-55da-422d-9fcb-d0af04ac3dd2","html_url":"https://github.com/NinesStack/nmesos","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NinesStack%2Fnmesos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NinesStack%2Fnmesos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NinesStack%2Fnmesos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NinesStack%2Fnmesos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NinesStack","download_url":"https://codeload.github.com/NinesStack/nmesos/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253681906,"owners_count":21946829,"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","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":["cli","mesos","singularity","tool"],"created_at":"2024-11-18T03:18:43.996Z","updated_at":"2025-05-12T05:30:52.731Z","avatar_url":"https://github.com/NinesStack.png","language":"Scala","readme":"![Logo][]\n\n# Nmesos\n\n[![Join the chat at https://gitter.im/NinesStack/nmesos][gitter-badge]][gitter-chat]\n![Build Status][build-badge]\n\nNmesos is a command line tool that leverages the [Singularity][] API to deploy services and schedule jobs in an Apache [Mesos][] cluster.\n\n![Example][]\n\n## Install\n\nUsing asdf ...\n\n``` bash\nasdf plugin-add nmesos https://github.com/NinesStack/nmesos.git\nasdf list-all nmesos\nasdf install nmesos \u003cversion\u003e\nasdf global nmesos \u003cversion\u003e\nasdf uninstall nmesos \u003cversion\u003e\n```\n\n**Note: For this to work you need to have `asdf 0.8` installed. `0.7` will not work.**\n\nUsing brew ...\n\n``` bash\nbrew tap ninesstack/nmesos https://github.com/NinesStack/nmesos.git\nbrew install nmesos\nbrew upgrade nmesos\nbrew uninstall nmesos\n```\n\nUsing curl ...\n\n``` bash\ncurl https://nmesos-releases.s3-eu-west-1.amazonaws.com/public/ninesstack/nmesos/\u003cversion\u003e/nmesos-\u003cversion\u003e.tgz | tar -xz\nchmod 755 nmesos-\u003cversion\u003e/nmesos\nmv nmesos-\u003cversion\u003e/nmesos \u003cto-dir-on-your-path\u003e\n```\n\n## Usage\n\nThere are example configurations in the `example` directory.\n\nPlease run `nmesos help` to see/understand the commands and options.\n\nTo `release` the `example-service` from the `examples` directory you would run ...\n\n``` bash\nnmesos release example-service --environment dev --tag latest --dry-run false\n```\n\nNote: You need to `cd` into the `example` directory first. If you want to run `nmesos` and use configurations that are in a different directory you need to use the `NMESOS_CONFIG_REPOSITORY` environment variable ...\n\n``` bash\nNMESOS_CONFIG_REPOSITORY=\u003cdir\u003e nmesos release example-service --environment dev --tag latest --dry-run false\n```\n\n## Support to deprecate env_vars\n\nWhen you do not need an `env_var` anymore, it is hard to remove it from the deployment config right away, because you might need to rollback to a previous version of the service that still needs that `env_var` (and yes, strictly speaking you could say that the deployment config should/could also be rolled back, but then you might loose other changes that you had to make to the config and ... my experience is you do not want to fiddle with that while you are in the middle of a production outage).\n\nTo make this easier/work `nmesos` supports an annotation to deprecate `env_vars` ...\n\n``` yaml\nnmesos_version: '0.2.20'\ncommon:\n  resources:\n    memoryMb: 128\n\n  container:\n    image: hubspot/singularity-test-service\n    ports:\n      - 8080\n    labels:\n      ServiceName: \"exampleServer\"\n    env_vars:\n      OLD_ENV_VAR: \"old value\" # @deprecated-on 01-Jan-2020\n      NEW_ENV_VAR: \"new value\"\n\n  singularity:\n    healthcheckUri: \"/hello\"\n```\n\nThe date is the date, when you deprecated the `env_var`. `nmesos` checks the date to find `env_vars`, where the grace period is expired. The default for the `--deprecated-soft-grace-period` is 14 days. The default for the `--deprecated-hard-grace-period` is 28 days.\n\nWhen the soft-limit is reached a warning is printed. When the hard-limit it reached an error is printed and the deploy is aborted.\n\nThe default can be overriden with command line flags (see `nmesos help`).\n\n## Support to run containers locally\n\nTo run containers locally you can generate a `\u003cservice-name\u003e.env` file and a `docker-compose.\u003cservice-name).yml` with the `docker-env` command.\n\nYou can then start the service with `docker-compose --file docker-compose.\u003cservice-name\u003e.yml` (to start it in the background just use the `--detach` flag).\n\nYou can also have nmesos run `docker-compose` for you with the `docker-run` command (it will start the service in the background).\n\n## Troubleshooting\n\nYou can set/export the `NMESOS_LOG_LEVEL` environment variable. Valid log-levels are `error`, `warn`, `info` and `debug`. This will log to `stdout`. You can also set `NMESOS_LOG_APPENDER` to `file`. This will create an `nmesos.log` file in the current directory.\n\n[Example]: ./assets/example.gif\n[Logo]: ./assets/logo.png\n[Mesos]: http://mesos.apache.org/\n[Singularity]: https://github.com/HubSpot/Singularity\n[build-badge]: https://github.com/ninesstack/nmesos/actions/workflows/ci.yml/badge.svg\n[gitter-badge]: https://badges.gitter.im/NinesStack/nmesos.svg\n[gitter-chat]: https://gitter.im/NinesStack/nmesos\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fninesstack%2Fnmesos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fninesstack%2Fnmesos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fninesstack%2Fnmesos/lists"}