{ "info": { "author": "Joe Black", "author_email": "me@joeblack.nyc", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3 :: Only", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development", "Topic :: System", "Topic :: System :: Systems Administration" ], "description": "# kzconfig\n\nGeneral kazoo configuration wrappers and helpers. Wraps the following libraries:\n* python-couchdb\n* kazoo-sdk\n* pyrkube\n* dnsimple\n\n\n## Customizing\nSubclass `kzconfig.Context`. In this example, I've chosen to show how a user who wants to use the default conventions except for using a different provider for DNS.\n\n```python\nfrom kzconfig import Context, meta\n\nclass MyContext(Context):\n _configs = ('environment',)\n _secrets = ('couchdb', 'rabbitmq', 'master-account', 'dns.coredns')\n\n def __init__(self, domain='example.org'):\n self.domain = domain\n\n @meta.lazy_property\n def dns(self):\n return MyDNS(self, self.domain)\n\n...\n\nimport CoreDNS\n\nclass MyDNS:\n def __init__(self, context, domain):\n self.context = context\n self.domain = domain\n creds = self.context.secrets['dns.coredns']\n\n self.api = CoreDNS(\n username=creds['email'],\n password=creds['password']\n )\n\n```\n\nQuick example of subclassing without a DNS implementation.\n```python\nfrom kzconfig import Context, meta\n\nclass MyContext(Context):\n _configs = ('environment',)\n _secrets = ('couchdb', 'rabbitmq', 'master-account', 'dns.coredns')\n _domain = 'example.org'\n\n def __init__(self, domain='example.org'):\n self.domain = domain\n\n def dns(self):\n raise NotImplemented\n```\n\n\n## Usage\n### Initializing a new context\n```python\nfrom kzconfig import Context, meta\n\ncontext = Context()\n```\n\n### Kubernetes\n```python\n# get the pod named rabbitmq\nrabbit_pod = context.kube.api.get('pod', 'rabbitmq')\n\n# defaults to default namespace\nall_pods = context.kube.api.get('pod')\n\n# all kube-system pods\nall_system_pods = context.kube.api.get('pod', namespace='kube-system')\n\n# get first pod using label selector app=couchdb\nfirst_couchdb_pod = context.kube.api.get_first('pod', selector=dict(app='couchdb'))\n```\nfor more see my pyrkube library...\n\n\n### CouchDB\n```python\n\n# get the system_config database\ndb = context.couchdb['system_config']\ndoc = dict(_id='hello')\n# save new document to it\ndb.save(doc)\n```\n\n### Kazoo\n```python\n\n# get the master account object in kazoo\nmaster_acct = context.kazoo.get_account(context.secrets['master-account'])\n```\n\n### DNS\n```python\ncontext.dns.add('A', '192.168.0.1')\n```\n\n### Sup\n```python\ncontext.sup.kz_nodes.status()\n```\n\n\n## CLI Commands\n### `sup`\n\n#### Usage\n```\nUsage: sup [OPTIONS] MODULE FUNCTION [ARGS]...\n\nOptions:\n --help Show this message and exit.\n```\n\n### `install-kubectl`\n\n#### Usage\n```\nUsage: install-kubectl [OPTIONS]\n\nOptions:\n --help Show this message and exit.\n```\n\nInstalls kubectl version == KUBECTL_VERSION || 1.7.8\n\nIf you override the version using environment variables, be sure to override KUBECTL_SHA256 also.\n\n\n#### Example\n\n```\nsup kz_nodes status\n```", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/telephoneorg/kzconfig/tarball/v0.3.4", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/telephoneorg/kzconfig", "keywords": "", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "kzconfig", "package_url": "https://pypi.org/project/kzconfig/", "platform": "", "project_url": "https://pypi.org/project/kzconfig/", "project_urls": { "Download": "https://github.com/telephoneorg/kzconfig/tarball/v0.3.4", "Homepage": "https://github.com/telephoneorg/kzconfig" }, "release_url": "https://pypi.org/project/kzconfig/0.3.4/", "requires_dist": null, "requires_python": "", "summary": "Convenience library for configuring Kazoo & it's components", "version": "0.3.4" }, "last_serial": 3372843, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "dd577a17ab8a1d07e02c9715c5dfec00", "sha256": "54bf7a4987672b09cf4e76e3e03c212c9a0be1a886a9bac555dde169986603b4" }, "downloads": -1, "filename": "kzconfig-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "dd577a17ab8a1d07e02c9715c5dfec00", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7031, "upload_time": "2017-11-01T19:39:42", "url": "https://files.pythonhosted.org/packages/d7/1b/2e97b311b148dedb512d983e335c192419f3c77121c37ef656c3c9af5bc5/kzconfig-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4c90a1fd69f122d991de86e827b13cc", "sha256": "c3640976529b777f2fbf2ccaccc54454737bebbb1e8d16f7c3a6ad3f5e3d1306" }, "downloads": -1, "filename": "kzconfig-0.2.0.tar.gz", "has_sig": false, "md5_digest": "c4c90a1fd69f122d991de86e827b13cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3709, "upload_time": "2017-11-01T19:39:43", "url": "https://files.pythonhosted.org/packages/ac/17/6d5e5be767a11060453c1c42ce629d26961ea0cccd41d26dd54023f91c2f/kzconfig-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "49f59a1709054a2748fa4a6fb5826229", "sha256": "6266c56de567d1bb1e5730e77733a479238c029daf8aa72b819af74fdbeb3786" }, "downloads": -1, "filename": "kzconfig-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "49f59a1709054a2748fa4a6fb5826229", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7986, "upload_time": "2017-11-16T22:46:16", "url": "https://files.pythonhosted.org/packages/31/9c/4375d2fcbaff77c47896bafd71a2190ce54e3296ad6a7d660570fb2a251e/kzconfig-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3c07c0308260255cd9feec46d6b03cd6", "sha256": "78c61a5da528c4bab2ee38325317c6e0d2a364616a815f37729c2f45235d7e7a" }, "downloads": -1, "filename": "kzconfig-0.2.1.tar.gz", "has_sig": false, "md5_digest": "3c07c0308260255cd9feec46d6b03cd6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4507, "upload_time": "2017-11-16T22:46:17", "url": "https://files.pythonhosted.org/packages/fd/47/bad3c7e43a8552daae6ca809f75a531584c87f9bc2d7a26c9b6f7feb94cd/kzconfig-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "af4b5c2f454313991117f57b94c9171c", "sha256": "854ed7557c7219b4bcb3405e7dc34d3949ab14696f15f243d707f22321020e55" }, "downloads": -1, "filename": "kzconfig-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "af4b5c2f454313991117f57b94c9171c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8704, "upload_time": "2017-11-20T21:47:56", "url": "https://files.pythonhosted.org/packages/32/56/db32a849dec7fe113d786b72412a011fc6f864ebcd8e47ba299b2d099032/kzconfig-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f849ec1e23ada77ed7a26db25d1f189b", "sha256": "bb08f6b6720652ea74e8a4eaa0ed7c682d0662ca14fbbc7e53d1385628d337f8" }, "downloads": -1, "filename": "kzconfig-0.2.2.tar.gz", "has_sig": false, "md5_digest": "f849ec1e23ada77ed7a26db25d1f189b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4963, "upload_time": "2017-11-20T21:47:57", "url": "https://files.pythonhosted.org/packages/76/cd/5ac93dba35bfe33ce0ed72cfae8db7a1fd8d4765464ea32854ce84274680/kzconfig-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "5bce9fb156c8cee9230be31460320905", "sha256": "2db37ff262dcadab1d38f77f77c2577ff434ce544dd90bd144c0d75ad7e03515" }, "downloads": -1, "filename": "kzconfig-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "5bce9fb156c8cee9230be31460320905", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8722, "upload_time": "2017-11-20T21:53:33", "url": "https://files.pythonhosted.org/packages/40/64/525ec5878c6e5f208af39b07014752374c7e81d19a01b95e635f84046a15/kzconfig-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d0c64c636384816b1a768f76fbb4dbf6", "sha256": "2b2e87a0cb74e802abca8724362c1d19334dfe7722a3e2759abbce10f6d89116" }, "downloads": -1, "filename": "kzconfig-0.2.3.tar.gz", "has_sig": false, "md5_digest": "d0c64c636384816b1a768f76fbb4dbf6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4970, "upload_time": "2017-11-20T21:53:34", "url": "https://files.pythonhosted.org/packages/c1/50/3bf5d5e60be0ff203d78fedb1651abef7de624ff66df1e8ca6cd65d71883/kzconfig-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "762c3ce50164529118be692ffb0d961a", "sha256": "a5098ca486c7d704aeec4fd296167faf481daa1565ec8a5f61426258b23166c6" }, "downloads": -1, "filename": "kzconfig-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "762c3ce50164529118be692ffb0d961a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8785, "upload_time": "2017-11-20T22:07:50", "url": "https://files.pythonhosted.org/packages/cc/b9/a81e6b3bcdbb54702cc57aac9d669e2a9ed8bdc541160faef511d2d4b7a5/kzconfig-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "99cfe36877fa7ab378289579f698f07f", "sha256": "ea473b9549f04008f562fb2c89f83750fe620347c91e1af65d3662d24646e31d" }, "downloads": -1, "filename": "kzconfig-0.2.4.tar.gz", "has_sig": false, "md5_digest": "99cfe36877fa7ab378289579f698f07f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4983, "upload_time": "2017-11-20T22:07:51", "url": "https://files.pythonhosted.org/packages/65/87/ba5591be95e4211f01377294433d37a8cd1c2e9d5f4717aabf1aa46e3a25/kzconfig-0.2.4.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "7efa660ab9254d3d2b8d4a41e91c2896", "sha256": "1c9828f1719cd6a098775eff6167fc73900530335c9800ab6a381f98a6d82a74" }, "downloads": -1, "filename": "kzconfig-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7efa660ab9254d3d2b8d4a41e91c2896", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12780, "upload_time": "2017-11-21T10:18:00", "url": "https://files.pythonhosted.org/packages/03/c3/3f13039d95eafede5fcffc0835b28c8e73b3c2e6bb6b7d122f7b24b5409f/kzconfig-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e1e18d1006ec0867b466a6e51bef5262", "sha256": "160e415e3bd6c4add4d02bf664706f03bb30134a78c6e8075589cf16687bb202" }, "downloads": -1, "filename": "kzconfig-0.3.0.tar.gz", "has_sig": false, "md5_digest": "e1e18d1006ec0867b466a6e51bef5262", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7471, "upload_time": "2017-11-21T10:18:01", "url": "https://files.pythonhosted.org/packages/9d/b9/6944bf5f859031fa51415df8eeb2bd023f34c116d51a6dfa1775d392ea0b/kzconfig-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "8411810ca3e7a9a7ef9a94fcabc77efe", "sha256": "60a2576236a8f8eb433a3fa7369e68dfcedaf428bbdc79e37c6e3d961c04cefb" }, "downloads": -1, "filename": "kzconfig-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8411810ca3e7a9a7ef9a94fcabc77efe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12824, "upload_time": "2017-11-22T22:24:38", "url": "https://files.pythonhosted.org/packages/60/f7/269c57c279175609524475fcecee859bf4df4a29a1289ed80ca0d9985464/kzconfig-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ba03eae49189d430f6973757508f2091", "sha256": "960c5492391134d71c9373729f9b14ffb73b586958e010ba334181002fcd9811" }, "downloads": -1, "filename": "kzconfig-0.3.1.tar.gz", "has_sig": false, "md5_digest": "ba03eae49189d430f6973757508f2091", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7512, "upload_time": "2017-11-22T22:24:39", "url": "https://files.pythonhosted.org/packages/34/9b/1e0f6ed4890b9e244c3e5588151c9096496c0fb1813b22164d595b6a9cd6/kzconfig-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "8fb4105a4ef266a83815f457b285ec98", "sha256": "9a3761c54ac4272e90be3e6c48b249c411daeeea0a762155dd2e26670d3deb42" }, "downloads": -1, "filename": "kzconfig-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8fb4105a4ef266a83815f457b285ec98", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12832, "upload_time": "2017-11-28T00:24:28", "url": "https://files.pythonhosted.org/packages/6b/e2/038f6a2385a41beb93767508c4815901cd9c18efe505bbb2e39fe727c548/kzconfig-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a4efd76fd2ae1983cd3e9d8629756773", "sha256": "bf0e05aef7aa6579fedea60afbb1ae16e508ffa0489695073827f4b7261e4cc7" }, "downloads": -1, "filename": "kzconfig-0.3.2.tar.gz", "has_sig": false, "md5_digest": "a4efd76fd2ae1983cd3e9d8629756773", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7539, "upload_time": "2017-11-28T00:24:31", "url": "https://files.pythonhosted.org/packages/d6/ce/7ae6cf3772e32ffa7bda67269a9f26fdf7e2b6440a39f84e36adc3d93370/kzconfig-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "e0ebdeff3268cec94dd595717134136d", "sha256": "2f3155c9462086a26bb6045a6d986c2167a815c2776e7ff7631eb16e9f88f0a2" }, "downloads": -1, "filename": "kzconfig-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "e0ebdeff3268cec94dd595717134136d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12831, "upload_time": "2017-11-28T02:46:13", "url": "https://files.pythonhosted.org/packages/10/9f/732a43844c793f499c6ab5b70fa5fc4054604acf16e412d879aba50d6f48/kzconfig-0.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "44273cfb3dbe616574a704f90e594d07", "sha256": "3559f4ba530958ae2d87dce9155dec62d2bf54ca569bdbe6ab9f9c68e78d6864" }, "downloads": -1, "filename": "kzconfig-0.3.3.tar.gz", "has_sig": false, "md5_digest": "44273cfb3dbe616574a704f90e594d07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7537, "upload_time": "2017-11-28T02:46:15", "url": "https://files.pythonhosted.org/packages/7e/80/7199106d0ab2640e5dac2bf072ae671910cc6819a76069430d27830b0159/kzconfig-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "3a9473deedfc2f1bc5458227130337ec", "sha256": "8f3785948bde827869f0c9edc29e71c345acd5e8f30a915ec7a981df0354a603" }, "downloads": -1, "filename": "kzconfig-0.3.4.tar.gz", "has_sig": false, "md5_digest": "3a9473deedfc2f1bc5458227130337ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8293, "upload_time": "2017-11-29T00:04:01", "url": "https://files.pythonhosted.org/packages/b8/55/e42aa35344de70770559d2f8d2695994cb1aab52bdebfcb5933612bab846/kzconfig-0.3.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3a9473deedfc2f1bc5458227130337ec", "sha256": "8f3785948bde827869f0c9edc29e71c345acd5e8f30a915ec7a981df0354a603" }, "downloads": -1, "filename": "kzconfig-0.3.4.tar.gz", "has_sig": false, "md5_digest": "3a9473deedfc2f1bc5458227130337ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8293, "upload_time": "2017-11-29T00:04:01", "url": "https://files.pythonhosted.org/packages/b8/55/e42aa35344de70770559d2f8d2695994cb1aab52bdebfcb5933612bab846/kzconfig-0.3.4.tar.gz" } ] }