|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
|
这是尚未发布的文档。 Admission Controller 1.34-dev. |
kwctl CLI
kwctl 的命令行帮助
本文件包含 kwctl 命令行程序的帮助内容。
命令概述:
kwctl
管理 SUSE Security Admission Controller 策略的工具
用法: kwctl [OPTIONS] <COMMAND>
子命令
-
annotate— 向 WebAssembly 模块添加 Admission Controller 元数据 -
bench— 对 Admission Controller 策略进行基准测试 -
completions— 生成 shell 补全 -
digest— 从策略的 OCI 清单中获取摘要 -
docs— 为 kwctl 命令生成 markdown 文档 -
info— 显示系统信息 -
inspect— 检查 Admission Controller 策略 -
load— 从 tar.gz 文件加载策略 -
policies— 列出所有已下载的策略 -
pull— 从给定的 URI 拉取 Admission Controller 策略 -
push— 将 Admission Controller 策略推送到 OCI 注册表 -
rm— 从存储中移除 Admission Controller 策略 -
run— 从给定的 URI 运行 Admission Controller 策略 -
save— 将策略保存到 tar.gz 文件 -
scaffold— 为 Kubernetes 资源或配置文件生成骨架 -
verify— 使用 Sigstore 验证来自给定 URI 的 Admission Controller 策略
kwctl annotate
向 WebAssembly 模块添加 Admission Controller 元数据
用法: kwctl annotate [OPTIONS] --metadata-path <PATH> --output-path <PATH> <wasm-path>
kwctl bench
对 Admission Controller 策略进行基准测试。
可以通过以下方式指定策略:
- URI:例如,registry://ghcr.io/kubewarden/policies/psp-policy:latest 或 https://example.com/kubewarden/policies/main/psp-policy/psp-policy.wasm
- SHA 前缀:例如,c3b80a10f9c3(要求策略已被拉取)
- 本地 WASM 文件:例如,file://home/tux/new-policy/psp-policy.wasm
- 本地 YAML 文件:例如,file://home/tux/cluster-admission-policy.yaml(包含 Admission Controller 自定义资源的声明,如 ClusterAdmissionPolicy、AdmissionPolicy 等)
默认行为:
如果省略模式,则假定为 file://,根目录为当前目录。
关于 Admission Controller 自定义资源的说明:
- 标志 --request-path、--settings-path 和 --settings-json 被忽略;设置从自定义资源定义中读取。
- --execution-mode 标志适用于 YAML 文件中的所有策略。
- --raw 标志不能使用,因为 Admission Controller 的自定义资源不支持 raw 策略。
仅评估自定义资源定义(CRD)的以下属性:
- 策略模块
- 策略设置
- 策略可以访问的上下文感知资源
其他字段,如 rules、matchConditions、objectSelector 和 namespaceSelector 被忽略。
YAML 文件可以包含多个自定义资源声明。在这种情况下,kwctl 在每次评估中使用相同的请求来评估文件中的每个策略。
用法: kwctl bench [OPTIONS] --request-path <PATH> <uri_or_sha_prefix_or_yaml_file>
参数
-
<URI_OR_SHA_PREFIX_OR_YAML_FILE>— 策略 URI、SHA 前缀或包含 Admission Controller 策略资源的 YAML 文件。支持的方案:registry://、https://, file://。如果省略模式,则假定为 file://,根目录为当前目录。
选项
-
--allow-context-aware <ALLOW-CONTEXT-AWARE>— 授予对策略的contextAwareResources部分中定义的 Kubernetes 资源的访问权限。警告:仔细检查资源列表以避免滥用。默认已禁用。 -
--cert-email <VALUE>— Fulcio 证书中预期的电子邮件。 -
--cert-oidc-issuer <VALUE>— Fulcio 证书中预期的 OIDC 发行者。 -
--disable-wasmtime-cache <DISABLE-WASMTIME-CACHE>— 关闭 wasmtime 缓存的使用。 -
--docker-config-json-path <PATH>— 指向包含 Docker 'config.json' 文件的目录的路径。可用于指示注册表身份验证详细信息。 -
--dump-results-to-disk <DUMP_RESULTS_TO_DISK>— 如果找到目标,则将结果放入 target/tiny-bench/label/..,用于比较之前的运行。 -
-e、--execution-mode <MODE>— 用于执行此策略的运行时。
可能的值:opa、gatekeeper、kubewarden、wasi。 -
--github-owner <VALUE>— 在 CD 管道中生成的证书中预期的 GitHub 拥有者。 -
--github-repo <VALUE>— 在 CD 管道中生成的证书中预期的 GitHub 仓库。 -
--measurement-time <SECONDS>— 基准测试“应该”运行多长时间,num_samples 优先,因此如果要基准测试的代码比允许的时间限制慢,基准测试将花费更长时间以便能够收集 num_samples。 -
--num-resamples <NUM>— 应该进行多少次重采样。 -
--num-samples <NUM>— 应该进行多少次重采样。建议至少进行50次,超过100次似乎不会产生显著不同的结果。 -
--raw <RAW>— 验证原始请求。
默认值:false -
--record-host-capabilities-interactions <FILE>— 将所有策略和主机能力通信记录到指定文件中。有助于后续与'--replay-host-capabilities-interactions' 标志结合使用。 -
--replay-host-capabilities-interactions <FILE>— 在策略和主机能力交换期间,主机会将提供文件中找到的答案回放。这对于以可重现的方式测试策略非常有用,因为没有与OCI注册表、DNS、Kubernetes的外部交互。 -
-r,--request-path <PATH>— 包含 Kubernetes 准入请求对象的 JSON 格式文件 -
--settings-json <VALUE>— 包含此策略设置的JSON字符串。 -
-s,--settings-path <PATH>— 包含此策略设置的文件。 -
--sigstore-trust-config <PATH>— 符合Sigstore protobuf规范中ClientTrustConfig消息的JSON格式文件。此文件配置整个 Sigstore 实例状态,包括用于访问 CA 和工件透明服务的 URI,以及加密 root 本身。 -
--sources-path <PATH>— 包含源信息的 YAML 文件(https,不安全的注册表主机,自定义 CA 的 …) -
-a,--verification-annotation <KEY=VALUE>— 以key=value格式的注释。可以重复多次。 -
--verification-config-path <PATH>— 包含验证配置的 YAML 文件(签名,公钥 …)。 -
-k,--verification-key <PATH>— 用于验证策略的密钥路径。可以重复多次。 -
--warm-up-time <SECONDS>— 基准测试应该预热多长时间。
kwctl inspect
检查 Admission Controller 策略
用法: kwctl inspect [OPTIONS] <uri_or_sha_prefix>
参数
-
<URI_OR_SHA_PREFIX>— 策略 URI 或 SHA 前缀。支持的方案:registry://、https://, file://。如果省略模式,则假定为 file://,根目录为当前目录。
kwctl pull
从给定 URI 拉取 Admission Controller 策略
用法: kwctl pull [OPTIONS] <uri>
选项
-
--cert-email <VALUE>— Fulcio 证书中预期的电子邮件。 -
--cert-oidc-issuer <VALUE>— Fulcio 证书中预期的 OIDC 发行者。 -
--docker-config-json-path <DOCKER_CONFIG>— 包含 Docker 'config.json' 文件的目录的路径。可用于指示注册表身份验证详细信息。 -
--github-owner <VALUE>— 在 CD 管道中生成的证书中预期的 GitHub 拥有者。 -
--github-repo <VALUE>— 在 CD 管道中生成的证书中预期的 GitHub 仓库。 -
-o,--output-path <PATH>— 输出文件。如果未提供,将下载到 Admission Controller 存储 -
--sigstore-trust-config <PATH>— 符合Sigstore protobuf规范中ClientTrustConfig消息的JSON格式文件。此文件配置整个Sigstore实例状态,包括用于访问CA和工件透明服务的URI以及加密信任根本身。 -
--sources-path <PATH>— 包含源信息的YAML文件(https,不安全的注册表主机,自定义CA…)。 -
-a,--verification-annotation <KEY=VALUE>— 以key=value格式的注释。可以重复多次。 -
--verification-config-path <PATH>— 包含验证配置的YAML文件(签名,公钥…)。 -
-k,--verification-key <PATH>— 用于验证策略的密钥路径。可以重复多次。
kwctl push
将Admission Controller策略推送到OCI注册表
用法: kwctl push [OPTIONS] <policy> <uri>
策略元数据中的注释将成为OCI清单的一部分。 多行注释被跳过,因为它们与OCI规范不兼容。 'io.kubewarden.policy.source’注释被传播为’org.opencontainers.image.source',以允许像renovatebot这样的工具检测策略更新。
kwctl run
在本地运行一个或多个Admission Controller策略。
可以通过以下方式指定策略:
- URI:例如,registry://ghcr.io/kubewarden/policies/psp-policy:latest 或 https://example.com/kubewarden/policies/main/psp-policy/psp-policy.wasm
- SHA 前缀:例如,c3b80a10f9c3(要求策略已被拉取)
- 本地 WASM 文件:例如,file://home/tux/new-policy/psp-policy.wasm
- 本地 YAML 文件:例如,file://home/tux/cluster-admission-policy.yaml(包含 Admission Controller 自定义资源的声明,如 ClusterAdmissionPolicy、AdmissionPolicy 等)
默认行为:
如果省略模式,则假定为 file://,根目录为当前目录。
关于 Admission Controller 自定义资源的说明:
- 标志 --request-path、--settings-path 和 --settings-json 被忽略;设置从自定义资源定义中读取。
- --execution-mode 标志适用于 YAML 文件中的所有策略。
- --raw 标志不能使用,因为 Admission Controller 的自定义资源不支持 raw 策略。
仅评估自定义资源定义(CRD)的以下属性:
- 策略模块
- 策略设置
- 策略可以访问的上下文感知资源
其他字段,如 rules、matchConditions、objectSelector 和 namespaceSelector,被忽略。
YAML 文件可以包含多个自定义资源声明。在这种情况下,kwctl 在每次评估中使用相同的请求来评估文件中的每个策略。
用法: kwctl run [OPTIONS] --request-path <PATH> <uri_or_sha_prefix_or_yaml_file>
参数
-
<URI_OR_SHA_PREFIX_OR_YAML_FILE>— 策略 URI、SHA 前缀或包含 Admission Controller 策略资源的 YAML 文件。支持的方案:registry://、https://, file://。如果省略模式,则假定为 file://,根目录为当前目录.
选项
-
--allow-context-aware <ALLOW-CONTEXT-AWARE>— 授予对策略的contextAwareResources部分中定义的 Kubernetes 资源的访问权限。警告:仔细检查资源列表以避免滥用。默认已禁用。 -
--cert-email <VALUE>— Fulcio 证书中预期的电子邮件。 -
--cert-oidc-issuer <VALUE>— Fulcio 证书中预期的 OIDC 发行者。 -
--disable-wasmtime-cache <DISABLE-WASMTIME-CACHE>— 关闭 wasmtime 缓存的使用。 -
--docker-config-json-path <PATH>— 包含 Docker 'config.json' 文件的目录路径。可用于指示注册表身份验证详细信息。 -
-e、--execution-mode <MODE>— 用于执行此策略的运行时。
可能的值:opa、gatekeeper、kubewarden、wasi。 -
--github-owner <VALUE>— 在 CD 管道中生成的证书中预期的 GitHub 拥有者。 -
--github-repo <VALUE>— 在 CD 管道中生成的证书中预期的 GitHub 储存库。 -
--raw <RAW>— 验证原始请求。
默认值:false -
--record-host-capabilities-interactions <FILE>— 将所有策略和主机能力通信记录到指定文件中。有助于后续与'--replay-host-capabilities-interactions’标志结合使用。 -
--replay-host-capabilities-interactions <FILE>— 在策略和主机能力交换期间,主机会将提供文件中找到的答案回放。这对于以可重现的方式测试策略非常有用,因为没有与OCI注册表、DNS、Kubernetes的外部交互。 -
-r,--request-path <PATH>— 包含Kubernetes准入请求对象的JSON格式文件 -
--settings-json <VALUE>— 包含此策略设置的JSON字符串。 -
-s,--settings-path <PATH>— 包含此策略设置的文件。 -
--sigstore-trust-config <PATH>— 符合Sigstore protobuf规范中ClientTrustConfig消息的JSON格式文件。此文件配置整个Sigstore实例状态,包括用于访问CA和工件透明服务的URI以及加密信任根本身。 -
--sources-path <PATH>— 包含源信息的YAML文件(https,不安全的注册表主机,自定义CA…)。 -
-a,--verification-annotation <KEY=VALUE>— 以key=value格式的注释。可以重复多次。 -
--verification-config-path <PATH>— 包含验证配置的YAML文件(签名,公钥…)。 -
-k,--verification-key <PATH>— 用于验证策略的密钥路径。可以重复多次。
kwctl scaffold admission-request
生成一个准入请求对象.
用法: kwctl scaffold admission-request [OPTIONS] --operation <TYPE>
kwctl scaffold artifacthub
从 metadata.yml 文件输出 artifacthub-pkg.yml 文件
用法: kwctl scaffold artifacthub [OPTIONS]
kwctl scaffold manifest
输出 Kubernetes 资源清单
用法: kwctl scaffold manifest [OPTIONS] --type <VALUE> <uri_or_sha_prefix>
参数
-
<URI_OR_SHA_PREFIX>— 策略 URI 或 SHA 前缀。支持的方案:registry://、https://, file://。如果省略模式,则假定为 file://,根目录为当前目录.
选项
-
--allow-context-aware <ALLOW-CONTEXT-AWARE>— 使用策略元数据定义哪些 Kubernetes 资源可以被策略访问。警告:仔细检查资源列表以避免滥用。默认已禁用。 -
--cert-email <VALUE>— Fulcio 证书中预期的电子邮件。 -
--cert-oidc-issuer <VALUE>— Fulcio 证书中预期的 OIDC 发行者。 -
--docker-config-json-path <DOCKER_CONFIG>— 指向包含 Docker 'config.json' 文件的目录的路径。可用于指示注册表身份验证详细信息。 -
--fulcio-cert-path <PATH>— Fulcio 证书的路径。可以重复多次。 -
--github-owner <VALUE>— 在 CD 管道中生成的证书中预期的 GitHub 拥有者。 -
--github-repo <VALUE>— 在 CD 管道中生成的证书中预期的 GitHub 储存库. -
--rekor-public-key-path <PATH>— Rekor 公钥的路径。可以重复多次。 -
--settings-json <VALUE>— 包含此策略设置的JSON字符串。 -
-s,--settings-path <PATH>— 包含此策略设置的文件。 -
--sigstore-trust-config <PATH>— 符合Sigstore protobuf规范中ClientTrustConfig消息的JSON格式文件。此文件配置整个Sigstore实例状态,包括用于访问CA和工件透明服务的URI以及加密信任根本身。 -
--sources-path <PATH>— 包含源信息的YAML文件(https,不安全的注册表主机,自定义CA…)。 -
--title <VALUE>— 策略标题 -
-t,--type <VALUE>— Admission Controller 自定义资源类型
可能的值:ClusterAdmissionPolicy、AdmissionPolicy -
-a,--verification-annotation <KEY=VALUE>— 以key=value格式的注释。可以重复多次。 -
--verification-config-path <PATH>— 包含验证配置信息的 YAML 文件(签名、公钥…)。 -
-k,--verification-key <PATH>— 用于验证策略的密钥路径。可以重复多次。
kwctl scaffold vap
将 Kubernetes ValidatingAdmissionPolicy 转换为 Admission Controller ClusterAdmissionPolicy
用法: kwctl scaffold vap [OPTIONS] --binding <VALIDATING-ADMISSION-POLICY-BINDING.yaml> --policy <VALIDATING-ADMISSION-POLICY.yaml>
kwctl verify
使用 Sigstore 从给定的 URI 验证 Admission Controller 策略。
用法: kwctl verify [OPTIONS] <uri>
选项
-
--cert-email <VALUE>— Fulcio 证书中预期的电子邮件。 -
--cert-oidc-issuer <VALUE>— Fulcio 证书中预期的 OIDC 发行者。 -
--docker-config-json-path <PATH>— 包含 Docker 'config.json' 文件的目录。可用于指示注册表身份验证详细信息。 -
--github-owner <VALUE>— 在 CD 管道中生成的证书中预期的 GitHub 拥有者。 -
--github-repo <VALUE>— 在 CD 管道中生成的证书中预期的 GitHub 储存库。 -
--sigstore-trust-config <PATH>— 符合 Sigstore protobuf 规范中 ClientTrustConfig 消息的 JSON 格式文件。此文件配置整个 Sigstore 实例状态,包括用于访问 CA 和工件透明服务的 URI 以及加密 root 本身。 -
--sources-path <PATH>— 包含源信息的 YAML 文件(https、不安全的注册表主机、自定义 CA…)。 -
-a,--verification-annotation <KEY=VALUE>— 以 key=value 格式的注释。可以重复多次。 -
--verification-config-path <PATH>— 包含验证配置信息的 YAML 文件(签名、公钥…)。 -
-k,--verification-key <PATH>— 用于验证策略的密钥路径。可以重复多次。
此文档由 clap-markdown 自动生成。