未提供项目描述
项目描述
The Idem Kubernetes provider
关于
一个用于管理Kubernetes资源的Idem插件。
什么是POP?
此项目使用 pop 构建,这是一个基于Python的 插件面向编程(POP) 实现。POP旨在以新的方式结合计算历史中的概念和智慧来解决现代计算问题。
更多信息
入门
先决条件
Python 3.8+
git (如果从源代码安装或为项目贡献力量)
要为项目贡献力量并设置本地开发环境,请参阅本项目源代码库中的 CONTRIBUTING.rst。
安装
您可以使用Python包安装程序(PyPI)或从源代码安装 idem-k8s。
从PyPI安装
pip install idem-k8s
从源代码安装
# Clone repo
git clone git@<your-project-path>/idem-k8s.git
cd idem-k8s
# Set up venv
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
开发
idem-k8s 插件内置了自动代码生成功能,以扩展对更多Kubernetes资源的支持。自动代码生成创建了支持新Kubernetes资源所需代码的90%以上。
使用以下命令自动生成Kubernetes资源状态文件:
pop-create k8s \
--directory ~/idem_k8s/autogen/dummy \ # directory in which the generated state files are stored
-tv \
-n idem_k8s \
--resource apps/v1/DaemonSet # resource for which state files are generated
“resource”参数的格式为:group/version/kind
例如,要添加Deployment资源状态,参数为:apps/v1/Deployment
更多信息,请参阅Kubernetes资源对象文档。
用法
设置
安装后,idem-k8s执行和状态模块可通过pop hub访问。
更多信息
要使用idem-k8s执行和状态模块来管理集群资源,您需要按照以下方式设置身份验证。
使用环境变量
将KUBE_CONFIG_PATH和KUBE_CTX环境变量设置为您的kube_config文件中找到的Kubernetes配置文件和上下文。
在Idem配置文件中
编辑Idem配置文件,在“account extras”下包含kube_config_path和context。以下示例作为指南。
acct:
extras:
k8s:
default:
kube_config_path: ~/.kube/config
context: default
在credentials.yaml文件中
创建或编辑Idem credentials.yaml文件,将kube_config_path和context添加到Kubernetes配置文件。以下示例作为指南。
k8s:
default:
kube_config_path: ~/.kube/config
context: default
有关Idem凭证文件的更多信息,包括加密和环境变量的推荐步骤,请参阅使用Idem进行身份验证
现在,您可以使用idem-k8s了。
状态
Idem SLS文件使用状态确保资源处于所需的配置。idem-k8s SLS文件支持三种状态函数:present、absent和describe。
present
present函数确保资源存在。如果资源不存在,运行present会创建它。如果资源已存在,运行present可能会保持不变,或者如果有配置更改,则更新它。
absent
absent函数确保资源不存在。如果资源存在,运行absent会删除它。如果资源不存在,运行absent没有效果。
describe
describe函数返回与凭证配置文件中指定的类型相同的所有Kubernetes集群中的资源列表。
访问状态
可以通过在idem-k8s/k8s/states中的相对位置访问状态。
例如,以下SLS文件中创建Kubernetes部署状态:
k8s_deployment.sls
nginx-deployment:
k8s.apps.v1.deployment.present:
- metadata:
name: nginx-deployment
namespace: default
- spec:
replicas: 3
selector:
match_labels:
app: nginx
strategy:
rolling_update:
max_surge: 25%
max_unavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx:1.14.20
image_pull_policy: IfNotPresent
name: nginx
ports:
- container_port: 80
protocol: TCP
termination_message_path: /dev/termination-log
termination_message_policy: File
restart_policy: Always
创建上述部署状态的Idem命令是
idem state $PWD/k8s_deployment.sls
当前支持的资源
apiregistration_k8s_io.v1
api_service
apps.v1
daemon_set
deployment
core.v1
config_map
namespace
secret
service_account
service
persistent_volume_claim
rbac.v1
cluster_role
cluster_role_binding
role_binding
storage_k8s_io.v1
storage_class
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解安装包的更多信息。
源分发
构建分发
idem-k8s-2.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9fe3e9d3036d7fceeedca35c2683d69119447c398de56e5ca32f08114acc2648 |
|
MD5 | d4d6bb56613505335934f539b2228a9b |
|
BLAKE2b-256 | 5c20006ad76e3957c0065b3c303974f16fb65122ad6a19067852e2087b6948c6 |
idem_k8s-2.0.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 14bcfdffacebc1d46f5af6541823f92fc003cfd58fdf2caf9ac97e447e51ee5b |
|
MD5 | 9d29ff43d919ed2e81f5f44c644a09f3 |
|
BLAKE2b-256 | f8f1227169866aa3834315e41326d2f79aab4e900cf73175d59f98afa2b4f034 |