适用于Python应用程序的Kubernetes服务绑定库
项目描述
PyServiceBinding
适用于Python应用程序的Kubernetes服务绑定库
Kubernetes的服务绑定规范将后端服务密钥公开给应用程序标准化。此项目提供了一个Python模块,用于消费投射到容器中的绑定。规范中的应用程序投射部分描述了绑定是如何投射到应用程序中的。投射的主要机制是通过挂载到特定目录的文件。可以通过SERVICE_BINDING_ROOT
环境变量发现绑定目录路径。操作员必须已将SERVICE_BINDING_ROOT
环境变量注入到创建绑定的所有容器中。
在此服务绑定根目录中,可能存在来自不同服务绑定的多个绑定。例如,假设一个应用程序需要连接到数据库和缓存服务器。在这种情况下,一个服务绑定可以提供数据库,另一个服务绑定可以提供对缓存服务器的绑定。
让我们看看规范中给出的示例
$SERVICE_BINDING_ROOT
├── account-database
│ ├── type
│ ├── provider
│ ├── uri
│ ├── username
│ └── password
└── transaction-event-stream
├── type
├── connection-count
├── uri
├── certificates
└── private-key
在上面的示例中,在SERVICE_BINDING_ROOT
目录下有两个绑定。account-database
和transaction-event-system
是绑定的名称。每个绑定目录中的文件都有一个特殊文件名为type
,您可以通过该文件的值来识别投射到该目录的绑定类型。在某些目录中,您还可以看到另一个名为provider
的文件。提供者是进一步缩小类型的附加标识符。此模块使用type
字段,可选地使用provider
字段来查找绑定。
安装
您可以使用pip安装此包
pip install pyservicebinding
用法
可以像这样实例化ServiceBinding
对象
from pyservicebinding import binding
try:
sb = binding.ServiceBinding()
except binding.ServiceBindingRootMissingError as msg:
# log the error message and retry/exit
print("SERVICE_BINDING_ROOT env var not set")
要获取特定type
的绑定,例如postgresql
bindings_list = sb.bindings("postgresql")
要获取特定type
(例如mysql
)和provider
(例如mariadb
)的绑定
bindings_list = sb.bindings("mysql", "mariadb")
要获取所有绑定,无论type
和provider
如何
bindings_list = sb.all_bindings()
这是模块的完整API
class ServiceBindingRootMissingError(Exception):
pass
class ServiceBinding:
def __init__(self):
"""
- raise ServiceBindingRootMissingError if SERVICE_BINDING_ROOT env var not set
"""
def all_bindings(self) -> list[dict[str, str]]:
"""Get all bindings as a list of dictionaries
- return empty list if no bindings found
"""
def bindings(self, _type: str, provider: typing.Optional[str] = None) -> list[dict[str, str]]:
"""Get filtered bindings as a list of dictionaries
- return empty dictionary if no binding found
- filter the result with the given _type input
- if provider input is given, filter bindings using the given type and provider
"""
项目详情
关闭
pyservicebinding-0.3.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a90da775bb4e54aac82ea06457fbf29c2ad1f4f10b3eb895dfd8fb679ae9f6fe |
|
MD5 | f17778a8b07af79e07847e790f41cf56 |
|
BLAKE2b-256 | 4370c0accaab949bc7e0e9e632d4ca432ac172f372a305d82f0802e10a5d8e80 |
关闭
pyservicebinding-0.3.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8c6b2a9d29fa3d85a6932e27fd9ef59b6b92148d8f426b8b413434d4aff5e32f |
|
MD5 | c2ea13a3cf3c10a2fab4a3fd8ad26fb7 |
|
BLAKE2b-256 | 78a52a891984a8ade71255edc5e2fdcf9ed9d0060bead132aee4acd9be1c9f8e |