我有一个 Kubernetes 操作员(例如:)kubectl get oracle_ctrl
。现在我想为 kubectl 命令提供自定义参数。前任:kubectl apply oracle_ctrl --auto-discover=true --name=vcn1
我可以再写一个控制器来做同样的工作。但我不想再写一个控制器并利用现有的控制器。
是否可以使用 operator-sdk 为 kubectl 提供自定义参数?
我有一个 Kubernetes 操作员(例如:)kubectl get oracle_ctrl
。现在我想为 kubectl 命令提供自定义参数。前任:kubectl apply oracle_ctrl --auto-discover=true --name=vcn1
我可以再写一个控制器来做同样的工作。但我不想再写一个控制器并利用现有的控制器。
是否可以使用 operator-sdk 为 kubectl 提供自定义参数?
不,这是不可能的。
kubernetes/kubectl#914对此进行了一些进一步的讨论,但其基本描述是“我们应该开始提案和设计过程,最终写出比kubectl create
支持它更好的东西”。您的 CRD 可以定义要显示的其他列,kubectl get
但这实际上是唯一kubectl
相关的扩展点。您可能会创建一个kubectl 插件或另一个 CLI 工具来满足您的需求。
与使用kubectl
命令式工具相比,直接编写 YAML 工件并将它们提交到源代码控制通常是一种更好的做法。您可以使用 Helm 或 Kustomize 等工具对这些参数进行参数化。如果kubectl apply -f
或者helm install
是您将事物加载到集群中的主要方式,那么您不需要自定义 CLI 选项来完成这项工作。