{ "info": { "author": "Kapil Thangavelu", "author_email": "kapil.foss@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "Juju Digital Ocean Provider\n---------------------------\n\n.. image:: https://www.digitalocean.com/assets/images/logos-badges/png/DO_Logo_Horizontal_Blue-a2b16fb8.png\n :target: here_\n\n\nThis package provides a cli plugin for juju that allows for automated\nprovisioning of machines on digital ocean. I like to call it JuDo :-)\n\nDigital ocean is linux vps provider utilizing kvm and ssd across\nmultiple data centers at a very competitive price with hourly billing.\n\nJuju provides for workloads management and orchestration using a\ncollection of workloads definitions (charms) that can be assembled\nlego fashion at runtime into complex application topologies.\n\nYou can find out more about juju at its home page. http://juju.ubuntu.com\n\n\n.. image:: https://travis-ci.org/kapilt/juju-digitalocean.svg?branch=master\n :target: builds_\n\nInstall\n=======\n\n**This plugin requires a version of juju >= 1.18.0**\n\nA usable version of juju is available out of the box in ubuntu 14.04 and later \nversions. For earlier versions of ubuntu, please use the stable ppa::\n\n $ sudo add-apt-repository ppa:juju/stable\n $ apt-get update && apt-get install juju\n $ juju version\n 1.20.4-precise-amd64\n\nPlugin installation is done via pip/easy_install which is the python language\npackage managers, its available by default on ubuntu. Also recommended\nis virtualenv to sandbox this install from your system packages::\n\n $ pip install -U juju-docean\n\nFwiw, currently the transitive dependency tree is PyYAML, requests, dop.\n\n\nSetup\n=====\n\nThere are three steps for configuration and setup of this\nprovider. Configuring your digital ocean api keys, adding an\nenvironment to juju's config file, and setting up an ssh key for usage\non digital ocean machines.\n\nDO API Keys\n+++++++++++\n\nA digital ocean account is a pre-requisite, If you don't have a\ndigital ocean account you can sign up `here`_.\n\nCredentials for the digital ocean api can be obtained from your account\ndashboard at https://cloud.digitalocean.com/settings/applications\n\nThe credentials can be provided to the plugin via:\n\n- Environment variable DO_OAUTH_TOKEN\n\nIf you're using an older version of juju-docean, it still accepts the\ndigitalocean api v1 credentials via:\n\n- Environment variables DO_CLIENT_ID and DO_API_KEY\n\nThis digital ocean plugin uses the manual provisioning capabilities of\njuju core. As a result its required to allocate machines in the\nenvironment before deploying workloads. We'll explore that more in a\nmoment.\n\nSSH Key\n+++++++\n\nAn ssh key is required for use by this plugin and the public key\nmust be uploaded to the digital ocean control panel. By default\nall keys in the digital ocean account will be tried, so no user\nconfiguration is needed. A specific key to utilize can be specified with\nthe environment variable DO_SSH_KEY=\"key_name\" where key_name is the name of\nthe key in the digital ocean management console.\n\n\nJuju Config\n+++++++++++\n\nNext let's configure a juju environment for digital ocean, add\na manual provider environment to 'environments.yaml', for example::\n\n environments:\n digitalocean:\n type: manual\n bootstrap-host: null\n bootstrap-user: root\n\nUsage\n=====\n\nWe need to tell juju which environment we want to use, there are\nseveral ways to do this, either of the following will do the trick::\n\n $ juju switch digitalocean\n $ export JUJU_ENV=digitalocean\n\nNow we can bootstrap our digital ocean environment::\n\n $ juju docean bootstrap --constraints=\"mem=2g, region=nyc1\"\n\nWhich will create a droplet with 2Gb of ram in the nyc1 data center.\n\nAll machines created by this plugin will have the juju environment\nname as a prefix for their droplet name if your looking at the DO\ncontrol panel.\n\nAfter our environment is bootstrapped we can add additional machines\nto it via the the add-machine command, for example the following will\nadd 2 additional machines with 2Gb each::\n\n $ juju docean add-machine -n 2 --constraints=\"mem=2G, region=nyc2\"\n $ juju status\n\n environment: docean\n machines:\n \"0\":\n agent-state: started\n agent-version: 1.17.2.1\n dns-name: 162.243.115.78\n instance-id: 'manual:'\n series: precise\n hardware: arch=amd64 cpu-cores=1 mem=2002M\n \"1\":\n agent-state: started\n agent-version: 1.17.2.1\n dns-name: 162.243.86.238\n instance-id: manual:162.243.86.238\n series: precise\n hardware: arch=amd64 cpu-cores=1 mem=2002M\n \"2\":\n agent-state: started\n agent-version: 1.17.2.1\n dns-name: 107.170.39.10\n instance-id: manual:107.170.39.10\n series: precise\n hardware: arch=amd64 cpu-cores=1 mem=2002M\n services: {}\n\nWe can now use standard juju commands for deploying service workloads aka\ncharms::\n\n $ juju deploy wordpress\n\nWithout specifying the machine to place the workload on, the machine\nwill automatically go to an unused machine within the environment.\n\nThere are hundreds of available charms ready to be used, you can\nfind out more about what's out there from http://jujucharms.com\nOr alternatively the 'plain' html version at\nhttp://manage.jujucharms.com/charms/precise\n\nWe can use manual placement to deploy target particular machines::\n\n $ juju deploy mysql --to=2\n\nAnd of course the real magic of juju comes in its ability to assemble\nthese workloads together via relations like lego blocks::\n\n $ juju add-relation wordpress mysql\n\nWe can list all machines in digitalocean that are part of the juju\nenvironment with the list-machines command. This directly queries the digital\nocean api and does not interact with juju api. It also takes a --all option to\nlist all machines in digitalocean account (irrespective of environment).::\n\n $ juju docean list-machines\n\n Id Name Size Status Created Region Address\n 2442349 ocean-0 512MB active 2014-08-25 nyc2 162.243.123.121\n 2442360 ocean-ef19ad5cc... 512MB active 2014-08-25 nyc2 162.243.51.21\n 2442361 ocean-145bf7a80... 512MB active 2014-08-25 nyc2 104.131.201.155\n 2442402 ocean-a9678a03e... 2GB active 2014-08-25 nyc3 104.131.43.243\n 2442403 ocean-f35ffedd9... 2GB active 2014-08-25 nyc3 104.131.43.242\n\nWe can terminate allocated machines by their machine id. By default with the\ndocean plugin, machines are forcibly terminated which will also terminate any\nservice units on those machines::\n\n $ juju docean terminate-machine 1 2\n\nAnd we can destroy the entire environment via::\n\n $ juju docean destroy-environment\n\ndestroy-environment also takes a --force option which only uses the\ndigital ocean api. Its helpful if state server or other machines are\nkilled independently of juju.\n\nAll commands have builtin help facilities and accept a -v option which will\nprint verbose output while running.\n\nYou can find out more about using from http://juju.ubuntu.com/docs\n\n\nConstraints\n===========\n\nConstraints are selection criteria used to determine what type of\nmachine to allocate for an environment. Those criteria can be related\nto size of the machine, its location, or other provider specific\ncriteria.\n\nThis plugin accepts the standard `juju constraints`_\n\n- cpu-cores\n- memory\n- root-disk\n\nAdditionally it supports the following provider specific constraints.\n\n- 'region' to denote the digital ocean data center to utilize. All digitalocean\n data centers are supported and various short hand aliases are defined. ie. valid\n values include ams2, nyc1, nyc2, sfo1, sg1. The plugin defaults to nyc3.\n\n- 'transfer' to denote the terabytes of transfer included in the\n instance montly cost (integer size in terabytes).\n\n\n.. _builds: https://travis-ci.org/kapilt/juju-digitalocean/builds\n.. _here: https://www.digitalocean.com/?refcode=5df4b80c84c8\n.. _juju constraints: https://juju.ubuntu.com/docs/reference-constraints.html\n\n\nContributing\n============\n\nBug reports and pull requests welcome.\n\n\nContributors\n------------\n- Kapil Thangavelu - Maintainer\n\n- Bruce Frederiksen - DO v2 Support", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kapilt/juju-digitalocean", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "juju-docean", "package_url": "https://pypi.org/project/juju-docean/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/juju-docean/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/kapilt/juju-digitalocean" }, "release_url": "https://pypi.org/project/juju-docean/0.6.0/", "requires_dist": null, "requires_python": null, "summary": "Digital Ocean integration with juju", "version": "0.6.0" }, "last_serial": 1619750, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "8501d3fe027ff690f69bf9e7bbb244ac", "sha256": "9328ec281b08a6030df27b2ca382b3a9a01db8d949a0a59410f12206f238414b" }, "downloads": -1, "filename": "juju-docean-0.0.10.tar.gz", "has_sig": false, "md5_digest": "8501d3fe027ff690f69bf9e7bbb244ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14251, "upload_time": "2014-02-16T00:43:26", "url": "https://files.pythonhosted.org/packages/67/d9/b3bfcb5e7058a2c6ffd62d440589d3cba6d257b03ba071b49c71e6331d1a/juju-docean-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "549339ef526bf9c12e6737d493596d44", "sha256": "d1cc7b8fadf7f8b3888c693fe2d10258d0925292d08fb8344a50ad6a7b5f34f5" }, "downloads": -1, "filename": "juju-docean-0.0.11.tar.gz", "has_sig": false, "md5_digest": "549339ef526bf9c12e6737d493596d44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14946, "upload_time": "2014-02-16T01:23:37", "url": "https://files.pythonhosted.org/packages/c8/27/a5f4a54d8bcecbdcd17d8ed6a6d6d896ba939dd07fcf6fbe35b9afbd85e8/juju-docean-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "b4493412dd9c80df5dfdaf79db0746dc", "sha256": "90ab62a10199498775dd7043af81c6182bf5552cf8fb21068ccc829cbfcdcda5" }, "downloads": -1, "filename": "juju-docean-0.0.12.tar.gz", "has_sig": false, "md5_digest": "b4493412dd9c80df5dfdaf79db0746dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15413, "upload_time": "2014-02-16T14:43:51", "url": "https://files.pythonhosted.org/packages/ac/35/5a668227642896b6c7e4e7564166d25b931eec80186281a08bc3abb71364/juju-docean-0.0.12.tar.gz" } ], "0.0.3": [], "0.0.8": [ { "comment_text": "", "digests": { "md5": "1c64f9e591d272003b7d4bf3fb951254", "sha256": "4410eb6ad100cdfc94258634072696cc6773f1280f099f9a7ada3267756b5b3a" }, "downloads": -1, "filename": "juju-docean-0.0.8.tar.gz", "has_sig": false, "md5_digest": "1c64f9e591d272003b7d4bf3fb951254", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14215, "upload_time": "2014-02-15T21:47:08", "url": "https://files.pythonhosted.org/packages/04/21/523fae7598019dc759ec685249bb11791267d57071046ad104c87992f8a9/juju-docean-0.0.8.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "b8dc050d885557d4241971d6aa7b2f25", "sha256": "5c96abd01f8933bca52fa8f7494faf3b15f4771c6cd13ba42d8e30dceb00140a" }, "downloads": -1, "filename": "juju-docean-0.1.0.tar.gz", "has_sig": false, "md5_digest": "b8dc050d885557d4241971d6aa7b2f25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15442, "upload_time": "2014-03-03T20:00:17", "url": "https://files.pythonhosted.org/packages/b2/6c/2b03eb86d2082fad23195c84d680aebe632e72efd435a9f090ff4ec79564/juju-docean-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a03dfe55b6e323890316fe33eda24cc0", "sha256": "f74b9daa21def19702e9173e21f2c3c836859e1852ba8dfb3ad81a51d55486df" }, "downloads": -1, "filename": "juju-docean-0.2.0.tar.gz", "has_sig": false, "md5_digest": "a03dfe55b6e323890316fe33eda24cc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16335, "upload_time": "2014-03-11T16:18:09", "url": "https://files.pythonhosted.org/packages/8b/cb/81836634a35bc081ac376ecd8a46f8df08021448999de84edba64ba1778c/juju-docean-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "bb5ced84fdd1cc1f9f6e82766e056129", "sha256": "7ad22548bb9315c7c6c05f5793784ef60e0364d62ade7bfeccaeff0f8e0266f5" }, "downloads": -1, "filename": "juju-docean-0.2.1.tar.gz", "has_sig": false, "md5_digest": "bb5ced84fdd1cc1f9f6e82766e056129", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16334, "upload_time": "2014-03-11T16:50:54", "url": "https://files.pythonhosted.org/packages/b0/5a/a039311c2ccb3a42b9355b54ffb9d8047b965c96dfe0d8a9f68612589464/juju-docean-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "600738f51f5a82ae346a6693bd02b5e9", "sha256": "d7f54a5c255d02469474de7dcdc591feaca8714c82bec68fd921a15f3aaea9ed" }, "downloads": -1, "filename": "juju-docean-0.2.2.tar.gz", "has_sig": false, "md5_digest": "600738f51f5a82ae346a6693bd02b5e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16504, "upload_time": "2014-03-31T04:27:50", "url": "https://files.pythonhosted.org/packages/b7/a0/a6df6f97b113484f94c6839c4518e5662bc219f54df8e05470dbefaf9f1e/juju-docean-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "348b391d4cf4cddd4204f429541c5554", "sha256": "475618e4d31c839df536d9d962937a67f668ef3028cc9ed919db5ce4dc1cad64" }, "downloads": -1, "filename": "juju-docean-0.2.3.tar.gz", "has_sig": false, "md5_digest": "348b391d4cf4cddd4204f429541c5554", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16795, "upload_time": "2014-04-02T14:39:32", "url": "https://files.pythonhosted.org/packages/30/3f/990809ce5c1a86c7711909ebff2376a3ec12248f26a8be0e808a37c4b82b/juju-docean-0.2.3.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "f6dbde6a3267caefd795c83b054daf81", "sha256": "e20e600c13c3011f077b38e465beac2de87e8c7cd270eb0d09111bd4a282c977" }, "downloads": -1, "filename": "juju-docean-0.3.0.tar.gz", "has_sig": false, "md5_digest": "f6dbde6a3267caefd795c83b054daf81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17360, "upload_time": "2014-04-21T19:57:02", "url": "https://files.pythonhosted.org/packages/40/5c/143fccff8b993557c765230ace0ec7ee31bd3e7188f5800c05482cb06873/juju-docean-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "52ca551d63200ee6beae7c9def465331", "sha256": "4672b00fb65147077415d5d177b9606d180ac73876750e87957a382fad1f244e" }, "downloads": -1, "filename": "juju-docean-0.4.0.tar.gz", "has_sig": false, "md5_digest": "52ca551d63200ee6beae7c9def465331", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17728, "upload_time": "2014-08-14T12:07:41", "url": "https://files.pythonhosted.org/packages/12/22/a6f52d930e548ab49ef9241107f58dad38c8671b35101a0669a7e389cbdb/juju-docean-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "2c1e02be9005acd033bb5375adefedb3", "sha256": "41685ea84491b96d581a3033d30d94b0e00e9139086d3c32a6dc88a5f7f78df5" }, "downloads": -1, "filename": "juju-docean-0.4.1.tar.gz", "has_sig": false, "md5_digest": "2c1e02be9005acd033bb5375adefedb3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17714, "upload_time": "2014-08-14T15:26:26", "url": "https://files.pythonhosted.org/packages/69/23/d8e35749466d569fdaf77f31fe1388fbd58c0dcfde1d816305cded4313d2/juju-docean-0.4.1.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "b5ccb0ea58f9479b76c8bf2f18a3b532", "sha256": "7c5d09bf08ba380378fc8724791b0a3b5cd48485d7025346d3ef19b395eaaf0b" }, "downloads": -1, "filename": "juju-docean-0.5.1.tar.gz", "has_sig": false, "md5_digest": "b5ccb0ea58f9479b76c8bf2f18a3b532", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19041, "upload_time": "2014-08-31T14:27:29", "url": "https://files.pythonhosted.org/packages/7d/71/692bd0a982b7b0b8c61288ea78dc4c54b687e0572ac86c0d007c4e97794a/juju-docean-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "83294440aed106ee34ba6657521a2716", "sha256": "78fe9e1f69b9274d124aae06a7795f1084efe8256e96505d209750a45d4785f4" }, "downloads": -1, "filename": "juju-docean-0.6.0.tar.gz", "has_sig": false, "md5_digest": "83294440aed106ee34ba6657521a2716", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21489, "upload_time": "2015-07-05T01:00:54", "url": "https://files.pythonhosted.org/packages/37/d5/5f06db6932dcc40a63e414509e94c1580854ae9a5527846d94d2fb4a0043/juju-docean-0.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "83294440aed106ee34ba6657521a2716", "sha256": "78fe9e1f69b9274d124aae06a7795f1084efe8256e96505d209750a45d4785f4" }, "downloads": -1, "filename": "juju-docean-0.6.0.tar.gz", "has_sig": false, "md5_digest": "83294440aed106ee34ba6657521a2716", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21489, "upload_time": "2015-07-05T01:00:54", "url": "https://files.pythonhosted.org/packages/37/d5/5f06db6932dcc40a63e414509e94c1580854ae9a5527846d94d2fb4a0043/juju-docean-0.6.0.tar.gz" } ] }