跳至主要内容

用于配置Kazoo及其组件的便捷库

项目描述

# kzconfig

通用的Kazoo配置封装和助手。封装以下库
* python-couchdb
* kazoo-sdk
* pyrkube
* dnsimple


## 自定义
继承`kzconfig.Context`。在这个例子中,我选择展示一个用户如何除了使用不同的DNS提供商外,使用默认约定。

```python
from kzconfig import Context, meta

class MyContext(Context)
_configs = ('environment',)
_secrets = ('couchdb', 'rabbitmq', 'master-account', 'dns.coredns')

def __init__(self, domain='example.org')
self.domain = domain

@meta.lazy_property
def dns(self)
return MyDNS(self, self.domain)

...

import CoreDNS

class MyDNS
def __init__(self, context, domain)
self.context = context
self.domain = domain
creds = self.context.secrets['dns.coredns']

self.api = CoreDNS(
username=creds['email'],
password=creds['password']
)

```

快速子类化示例,没有DNS实现。
```python
from kzconfig import Context, meta

class MyContext(Context)
_configs = ('environment',)
_secrets = ('couchdb', 'rabbitmq', 'master-account', 'dns.coredns')
_domain = 'example.org'

def __init__(self, domain='example.org')
self.domain = domain

def dns(self)
raise NotImplemented
```


## 使用
### 初始化新的上下文
```python
from kzconfig import Context, meta

context = Context()
```

### Kubernetes
```python
# 获取名为rabbitmq的pod
rabbit_pod = context.kube.api.get('pod', 'rabbitmq')

# 默认为默认命名空间
all_pods = context.kube.api.get('pod')

所有 kube-system pods
all_system_pods = context.kube.api.get('pod', namespace='kube-system')

获取第一个标签为 app=couchdb 的 pod
first_couchdb_pod = context.kube.api.get_first('pod', selector=dict(app='couchdb'))
```
更多请参阅我的 pyrkube 库...


### CouchDB
```python

获取系统配置数据库
db = context.couchdb['system_config']
doc = dict(_id='hello')
将新文档保存到其中
db.save(doc)
```

### Kazoo
```python

获取 Kazoo 中的主账户对象
master_acct = context.kazoo.get_account(context.secrets['master-account'])
```

### DNS
```python
context.dns.add('A', '192.168.0.1')
```

### Sup
```python
context.sup.kz_nodes.status()
```


## CLI 命令
### `sup`

#### 用法
```
用法:sup [OPTIONS] 模块 函数 [ARGS]...

选项
--help 显示此信息并退出。
```

### `install-kubectl`

#### 用法
```
用法:install-kubectl [OPTIONS]

选项
--help 显示此信息并退出。
```

安装 kubectl 版本 == KUBECTL_VERSION || 1.7.8

如果您使用环境变量覆盖版本,请确保也覆盖 KUBECTL_SHA256。


#### 示例

```
sup kz_nodes status
```

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

kzconfig-0.3.4.tar.gz (8.3 kB 查看哈希)

上传时间