{ "info": { "author": "VK", "author_email": "vk@vertical-knowledge.com", "bugtrack_url": null, "classifiers": [], "description": "Rollastic\n=========\n\nElasticsearch cluster management, namely rolling restart and upgrades.\nYour cluster should be deployed/managed via SaltStack; this is meant to be ran on your Salt master.\n\nWhile currently not a *hard* requirement (as far as states applied on an upgrade, a highstate is performed), we\nrecommend to use our fork of the elasticsearch Salt formula: https://github.com/vkgit/saltstack-elasticsearch-formula,\nas further integration will happen in the future.\n\n\nInstall\n-------\n\n```\npip install rollastic\n```\n\nUsage\n-----\n\n### Restart\n\n```\nUsage: rollastic restart [OPTIONS] MASTER_NODE\n\n Rolling restart of cluster.\n\n MASTER_NODE is the initial node to query to get the list of master nodes\n to connect to. Rollastic will connect to all master nodes to avoid relying\n on one to be up for the roll procedure.\n\n This will:\n - Collect and order the nodes to roll.\n If you opted to include master nodes, they are always done first.\n - Wait until cluster is in green health\n - For each node from #1 above\n If node's heap used percentage is over kill-at-heap:\n * Disable cluster allocation\n * Ping node through Salt to verify connectivity\n * Shutdown node\n * Wait for ES to die for 2m.\n If it's not dead, run a killall java and wait another 2m.\n If it's still not dead, fail.\n * Start elasticsearch service through Salt\n * Wait until node joins cluster with an uptime within 120s.\n * Enable allocation\n * Wait until cluster is in green health\n\nOptions:\n --masters / --no-masters Restart master nodes as well [false]\n --datas / --no-datas Restart data nodes [true]\n --kill-at-heap INTEGER Heap used percentage threshold to restart that\n node [85]\n --help Show this message and exit.\n```\n\n### Upgrade\n\n```\nUsage: rollastic upgrade [OPTIONS] MASTER_NODE\n\n Rolling upgrade of cluster.\n\n MASTER_NODE is the initial node to query to get the list of master nodes\n to connect to. Rollastic will connect to all master nodes to avoid relying\n on one to be up for the roll procedure.\n\n This will:\n - Collect and order the nodes to roll.\n If you opted to include master nodes, they are always done first.\n - Wait until cluster is in green health\n - For each node from #1 above\n If node's ES version is under minimum_version:\n * Disable cluster allocation\n * Ping node through Salt to verify connectivity\n * Run a Salt highstate\n * Check for an available upgrade on the Elasticsearch package, if so:\n - Shutdown node\n - Wait for ES to die for 2m.\n If it's not dead, run a killall java and wait another 2m.\n If it's still not dead, fail.\n * If ES was stopped at any point in this:\n - Start elasticsearch service if it's not already started\n - Wait until node joins cluster with an uptime within 120s.\n * Enable allocation\n * Wait until cluster is in green health\n\nOptions:\n --masters / --no-masters Restart master nodes as well [false]\n --datas / --no-datas Restart data nodes [true]\n --minimum-version TEXT Minimum version to upgrade to [1.7.1]\n --help Show this message and exit.\n```\n", "description_content_type": null, "docs_url": null, "download_url": "http://github.com/vertical-knowledge/rollastic/tarball/0.0.7", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/vertical-knowledge/rollastic", "keywords": "elasticsearch,elastic,cluster,salt,saltstack,rolling,upgrade,restart", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "rollastic", "package_url": "https://pypi.org/project/rollastic/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/rollastic/", "project_urls": { "Download": "http://github.com/vertical-knowledge/rollastic/tarball/0.0.7", "Homepage": "http://github.com/vertical-knowledge/rollastic" }, "release_url": "https://pypi.org/project/rollastic/0.0.7/", "requires_dist": null, "requires_python": null, "summary": "Automated ElasticSearch cluster rolling restarts/upgrades via SaltStack", "version": "0.0.7" }, "last_serial": 1923116, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "d94f70f5e2ca7c3c4d558821143f0974", "sha256": "2fbfaf6bbd3cb6f017dd0eb7a93e2efb66635a0b1cb2859953071b6db320cd7d" }, "downloads": -1, "filename": "rollastic-0.0.1.tar.gz", "has_sig": false, "md5_digest": "d94f70f5e2ca7c3c4d558821143f0974", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8145, "upload_time": "2015-09-10T20:35:40", "url": "https://files.pythonhosted.org/packages/ee/7d/792304883abf165440673c38e53658035656a150ee822d73468f885f3349/rollastic-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "1e2730866b93c0f8bfff4c7954c20be7", "sha256": "ced46eb9368d4b0fed25d1d07e57d0c69814857fb1a5857bf1604376c61d84b5" }, "downloads": -1, "filename": "rollastic-0.0.2.tar.gz", "has_sig": false, "md5_digest": "1e2730866b93c0f8bfff4c7954c20be7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8154, "upload_time": "2015-09-10T20:42:38", "url": "https://files.pythonhosted.org/packages/81/cf/1e35b832fb19a8e5abd0f7656e85775ad39d9ecfd98289b12c1f1275d407/rollastic-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "c1e25eddabca9a4f4b1179595662613a", "sha256": "da76528019029924a22ba7b75f961f0cea3c902afdea745fd3417bf92dfd9dfe" }, "downloads": -1, "filename": "rollastic-0.0.3.tar.gz", "has_sig": true, "md5_digest": "c1e25eddabca9a4f4b1179595662613a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20854, "upload_time": "2015-09-10T20:59:21", "url": "https://files.pythonhosted.org/packages/b6/1a/2813d98f6b01131089f865e6409b3514e2ed9d75217720b051e2a700ec01/rollastic-0.0.3.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "1a725d4bc64c842fc40f4b3a7a306ab4", "sha256": "621fc9a23418878464475ec76b940b6afc632aa4b12d00e921e24ae46988aaa8" }, "downloads": -1, "filename": "rollastic-0.0.5.tar.gz", "has_sig": false, "md5_digest": "1a725d4bc64c842fc40f4b3a7a306ab4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20850, "upload_time": "2015-09-10T21:53:59", "url": "https://files.pythonhosted.org/packages/2c/7e/57056b53d478e9e133c1ae72c2571794e54288a92da95d7809259b6bc020/rollastic-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "e93a09c5d4850ec9977dda0a9d8513ec", "sha256": "66a32bb0419db42e173382a0eebf749f2bb79e1ad725844fc346c4b645ce0a01" }, "downloads": -1, "filename": "rollastic-0.0.6.tar.gz", "has_sig": false, "md5_digest": "e93a09c5d4850ec9977dda0a9d8513ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20901, "upload_time": "2015-09-23T15:08:44", "url": "https://files.pythonhosted.org/packages/3f/fe/842092a7cb0e5f1d95c3ecfc97cc648cdcd9966ba3c3bc07d13018f494d1/rollastic-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "ad31c05a2b3d3252c75dcb2b3f13c843", "sha256": "b9febb2068d014ba7f02a9ccce83c120fb11d44b3ad84295d3b5f687263fc1fe" }, "downloads": -1, "filename": "rollastic-0.0.7.tar.gz", "has_sig": false, "md5_digest": "ad31c05a2b3d3252c75dcb2b3f13c843", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20820, "upload_time": "2016-01-26T05:29:40", "url": "https://files.pythonhosted.org/packages/c9/c4/8269e64d023cba4ed2bcc025858ca9b62066a9c23d3bc56f9eff5f1c7b88/rollastic-0.0.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ad31c05a2b3d3252c75dcb2b3f13c843", "sha256": "b9febb2068d014ba7f02a9ccce83c120fb11d44b3ad84295d3b5f687263fc1fe" }, "downloads": -1, "filename": "rollastic-0.0.7.tar.gz", "has_sig": false, "md5_digest": "ad31c05a2b3d3252c75dcb2b3f13c843", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20820, "upload_time": "2016-01-26T05:29:40", "url": "https://files.pythonhosted.org/packages/c9/c4/8269e64d023cba4ed2bcc025858ca9b62066a9c23d3bc56f9eff5f1c7b88/rollastic-0.0.7.tar.gz" } ] }