7.4.3. 访问运行时属性


在大多数用例中,您写入的二进制文件或脚本文件必须有权访问插件框架提供的一些上下文信息。例如,如果您在描述符文件中声明了标记,则插件必须在运行时能够访问用户提供的标志值。

全局标志也是如此。插件框架负责执行此操作,因此插件作者不需要担心解析参数。这也确保插件和常规 oc 命令之间的最佳一致性水平。

插件可以通过环境变量访问运行时上下文属性。例如,若要访问通过标志提供的值,例如,使用针对二进制或脚本的适当函数调用查找正确的环境变量值。

支持的环境变量有:

  • KUBECTL_PLUGINS_CALLER :当前命令调用中使用的 oc 二进制文件的完整路径。作为插件作者,您不必实施逻辑来验证和访问 Kubernetes API。您可以使用此环境变量提供的值来调用 oc 并获取所需信息,如 oc get --raw=/apis
  • KUBECTL_PLUGINS_CURRENT_NAMESPACE :当前的命名空间是此调用的上下文。这是要在命名空间操作中考虑的实际命名空间,这意味着它已经按照 kubeconfig 提供的优先级、--namespace global 标志、环境变量等之间的优先级处理。
  • KUBECTL_PLUGINS_DESCRIPTOR_* :用于 plugin.yaml 描述符中声明的每个属性的一个环境变量。例如:K UBECTL_PLUGINS_DESCRIPTOR_NAME,KUBECTL_PLUGINS_DESCRIPTOR_COMMAND.
  • KUBECTL_PLUGINS_GLOBAL_FLAG_* :每个 oc 支持的全局标志的环境变量。例如:K UBECTL_PLUGINS_GLOBAL_FLAG_NAMESPACE,KUBECTL_PLUGINS_GLOBAL_FLAG_LOGLEVEL
  • KUBECTL_PLUGINS_LOCAL_FLAG_* :用于 plugin.yaml 描述符中声明的每个本地标记的一个环境变量。例如,以上 great-plugin 示例中的 KUBECTL_PLUGINS_LOCAL_FLAG_HEAT
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.