{"id":16726302,"url":"https://github.com/brunobonacci/rolling-update","last_synced_at":"2025-03-15T15:24:41.789Z","repository":{"id":147148758,"uuid":"203040166","full_name":"BrunoBonacci/rolling-update","owner":"BrunoBonacci","description":"A command line tool for automated rolling update of auto-scaling groups.","archived":false,"fork":false,"pushed_at":"2019-09-03T21:43:00.000Z","size":30,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-22T05:28:30.333Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Clojure","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/BrunoBonacci.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2019-08-18T18:12:09.000Z","updated_at":"2020-02-10T17:11:33.000Z","dependencies_parsed_at":"2023-06-09T22:30:29.431Z","dependency_job_id":null,"html_url":"https://github.com/BrunoBonacci/rolling-update","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrunoBonacci%2Frolling-update","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrunoBonacci%2Frolling-update/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrunoBonacci%2Frolling-update/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrunoBonacci%2Frolling-update/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BrunoBonacci","download_url":"https://codeload.github.com/BrunoBonacci/rolling-update/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243747677,"owners_count":20341542,"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":[],"created_at":"2024-10-12T22:52:49.036Z","updated_at":"2025-03-15T15:24:41.783Z","avatar_url":"https://github.com/BrunoBonacci.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rolling-update\n![CircleCi](https://img.shields.io/circleci/project/BrunoBonacci/rolling-update.svg) ![last-commit](https://img.shields.io/github/last-commit/BrunoBonacci/rolling-update.svg) [![Dependencies Status](https://jarkeeper.com/com.brunobonacci/rolling-update/status.svg)](https://jarkeeper.com/BrunoBonacci/rolling-update)\n\nA command line tool for automated rolling update of auto-scaling groups.\n\n## Installation\n\n  * Install command line tool via [Homebrew](https://brew.sh/)\n  ``` bash\n  brew tap BrunoBonacci/lazy-tools\n  brew install rolling-update\n\n  # to update once installed\n  # brew update \u0026\u0026 brew upgrade rolling-update\n  ```\n\n  * Otherwise use the Manual installation\n  ``` bash\n  mkdir -p ~/bin\n  wget https://github.com/BrunoBonacci/rolling-update/releases/download/0.3.1/rolling-update -O ~/bin/rolling-update\n  chmod +x ~/bin/rolling-update\n  export PATH=~/bin:$PATH\n  ```\n\n## Usage\n\n```\nNAME\n\n    rolling-update - A command line tool for automated rolling update\n         of auto-scaling groups in cloud environments.\n\n\nSYNOPSIS\n\n    rolling-update [global-options] [TARGET...]\n\nDESCRIPTION\n\n    rolling-update is a tool which allows you to automate rolling\n    restart of cloud entities such as auto-scaling groups on AWS.\n\nGLOBAL-OPTIONS\n\n    -h, --help\n        It displays this page.\n\n\n    -v, --version\n        It shows the tool's version.\n\n\n    --dryrun, --dry-run, --show-plan\n        Just print the plan without performing any step.\n\n    -s \u003cstrategy\u003e, --strategy \u003cstrategy\u003e\n        The name of the strategy used for the rolling update. See\n        STRATEGIES section below.\n\n    --grace-period \u003ctime-in-seconds\u003e  (default: 60s)\n        The time to wait after the new the new instance comes to live\n        before starting terminating the next one.\n        This time is useful for stateful services such as databases\n        to allow the new joined instance to synch up with the rest\n        of the cluster. The amount of time required depends on the\n        specific of the application and the amount of data to transfer.\n        Values are in seconds, a suffix can be added to specify the\n        time unit such as: `s` for seconds, `m` minutes, `h` hours.\n\nTARGET\n\n    The auto-scaling group (or groups) which need to be restarted.\n\n    By name: web-app* or booking-asg\n        It supports glob matching (? for any singe char, * for any\n        number of any char). If provided it will be matched against\n        the auto-scaling group names.\n\n    By tag:  tag:\u003ctag-name\u003e=\u003ctag-value\u003e\n        It matches the auto-scaling groups with have a tag which\n        matches the given tag-name and tag-value pair.\n        Examples:\n           tag:Foo=bar\n           tag:service=booking-service\n           tag:GroupName='Any group value'\n\nSTRATEGIES\n\n    Which strategy is used for the rolling update of the instances.\n    Different use cases will require different strategies.  Currently,\n    we support strategy the following strategies:\n    The DEFAULT strategy is: terminate-and-wait.\n\n    -s terminate, --strategy terminate, --strategy terminate-and-wait\n        It terminates one instance from the selected auto-scaling\n        group and it waits until the auto-scaling group stabilizes\n        back with a new instance coming into service. After that there\n        is a waiting grace period to allow the new instance to join\n        the cluster and synchronize with the rest of the group (if\n        necessary).\n\n    -s reboot, --strategy reboot, --strategy reboot-and-wait\n        It reboots one instance from the selected auto-scaling\n        group and it waits until the auto-scaling group stabilizes\n        back with a new instance coming into service. After that there\n        is a waiting grace period to allow the new instance to join\n        the cluster and synchronize with the rest of the group (if\n        necessary).\n\n```\n\n\nExamples:\n\n``` bash\nrolling-update user-service* --show-plan\n```\nThis command will only display which steps will be taken without\nperforming any action.\n\n\n``` bash\n# ATTENTION: instances will be TERMINATED\nrolling-update user-service*\n```\nThis command will select all the autoscaling groups which match the\nfollowing pattern `user-service*` and one instance at the time it will\nterminate, wait for the ASG to create a new one (with potentially a\nnew config) and then move to the next instance, until completion.\n\n\n``` bash\n# ATTENTION: instances will be REBOOTED\nrolling-update user-service* -s reboot\n```\nThis command will select all the autoscaling groups which match the\nfollowing pattern `user-service*` and one instance at the time it will\nreboot, wait for the ASG to create a new one (with potentially a\nnew config) and then move to the next instance, until completion.\n\n\n\n## License\n\nCopyright © 2019 Bruno Bonacci - Distributed under the [Apache License v2.0](http://www.apache.org/licenses/LICENSE-2.0)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrunobonacci%2Frolling-update","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrunobonacci%2Frolling-update","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrunobonacci%2Frolling-update/lists"}