跳转到主要内容

未提供项目描述

项目描述

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_pathcontext。以下示例作为指南。

acct:
  extras:
    k8s:
      default:
        kube_config_path: ~/.kube/config
        context: default

在credentials.yaml文件中

创建或编辑Idem credentials.yaml文件,将kube_config_pathcontext添加到Kubernetes配置文件。以下示例作为指南。

k8s:
  default:
    kube_config_path: ~/.kube/config
    context: default

有关Idem凭证文件的更多信息,包括加密和环境变量的推荐步骤,请参阅使用Idem进行身份验证

现在,您可以使用idem-k8s了。

状态

Idem SLS文件使用状态确保资源处于所需的配置。idem-k8s SLS文件支持三种状态函数:presentabsentdescribe

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 (39.1 kB 查看哈希值)

上传于

构建分发

idem_k8s-2.0.0-py3-none-any.whl (68.4 kB 查看哈希值)

上传于 Python 3

由以下支持