跳转到主要内容

未提供项目描述

项目描述

Made with pop, a Python implementation of Plugin Oriented Programming Made with Python

内置函数的Idem插件

关于

一个包含常用函数的Idem插件,您可以使用exec.run状态运行这些函数。您可以使用参数绑定将这些常用函数的输出传递到其他Idem插件资源状态,例如在idem-aws、idem-k8s或其他Idem插件中。

什么是POP?

该项目使用pop构建,pop是基于Python实现的插件导向编程(POP)。POP旨在以新的方式结合计算机历史中的概念和智慧来解决现代计算问题。

更多信息

入门

先决条件

  • Python 3.8+

  • git (如果从源代码安装或为项目做贡献)

    要为项目做贡献并设置您的本地开发环境,请查看该项目源存储库中的CONTRIBUTING.rst。

安装

您可以使用Python包管理器(PyPI)或从源代码安装 idem-core-functions

从PyPI安装

pip install idem-core-functions

从源代码安装

# clone repo
git clone git@<your-project-path>/idem-core-functions.git
cd idem-core-functions

# Setup venv
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

使用方法

配置

安装后,idem-core-functions 执行模块将可供pop hub 使用。

更多信息

现在您可以使用 idem-core-functions。

执行模块

SLS文件指定资源的期望状态。您可以使用 exec.run 状态在SLS文件中运行exec模块,其中exec模块返回一个新状态,可以用参数绑定引用。

  • core.encoding.base64encode

    对字符串应用Base64编码。

  • core.encoding.base64decode

    将Base64编码的字符字符串恢复为原始字符串。

  • core.conversion.to_json

    将对象序列化为JSON字符串。

  • core.collection.distinct

    对于给定的列表,返回一个新列表,其中移除了任何重复的元素。

  • core.collection.flatten

    对于给定的列表,将任何列表元素替换为该列表的扁平序列。

  • core.collection.element

    从列表中检索单个元素。

  • core.collection.length

    确定给定列表、映射或字符串的长度。

语法

[Idem-state-name]:
  exec.run:
    - path: core.encoder.base64.encode
    - kwargs:
        data: test-user-name:test-password

[Idem-state-name]:
  exec.run:
    - path: core.encoder.base64.decode
    - kwargs:
        encoded_data: dGVzdC11c2VyLW5hbWU6dGVzdC1wYXNzd29yZA==

[Idem-state-name]:
  exec.run:
    - path: core.conversion.to_json
    - kwargs:
        data: '{
          "cluster_name":  "idem-eks-test",
          "region": "ap-south-1",
        }'

[Idem-state-name]:
  exec.run:
    - path: core.encryption.gpg.encrypt
    - kwargs:
        data: test-data-for-encryption

示例

vault_generic_secret.example-creds.search:
  vault.secrets.kv_v1.secret.search:
    - path: "example/projects.registry.example.com"

idem.core.encoder.base64.encode.test-2:
  exec.run:
    - path: core.encoder.base64.encode
    - kwargs:
        data: "${vault.secrets.kv_v1.secret:vault_generic_secret.example-creds.search:data:user}:${vault.secrets.kv_v1.secret:vault_generic_secret.example-creds.search:data:pass}"

kubernetes_secret.registry-secret-example:
  k8s.core.v1.secret.present:
    - resource_id: {{ params.get('kubernetes_secret.registry-secret-example') }}
    - metadata:
        name: "registrysecret-example"
    - string_data:
        ".dockerconfigjson": |+
                             {
                               "auths": {
                                 "projects.registry.example.com": {
                                   "auth": "${exec:idem.core.b64Encode.test-2:data}"
                                 }
                               }
                             }
    - type: "kubernetes.io/dockerconfigjson"

idem.core.encryption.gpg.encrypt.test-1:
  exec.run:
    - path: core.encryption.gpg.encrypt
    - kwargs:
        data: test-data-for-encryption

Idem命令行示例

idem exec exec.core.encoding.base64encode data=sample-data
idem exec exec.core.encoding.base64decode encoded_data=dGVzdC11c2VyLW5hbWU6dGVzdC1wYXNzd29yZA==

当前支持的执行函数

core

  • conversion

  • collection

  • encoder

  • encryption

项目详情


下载文件

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

源分布

idem-core-functions-2.0.0.tar.gz (15.6 kB 查看哈希值)

上传时间 源代码

构建分布

idem_core_functions-2.0.0-py3-none-any.whl (16.9 kB 查看哈希值)

上传时间 Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面