首页 > 解决方案 > 为 kubernetes operator 提供 kubectl 的自定义命令行选项

问题描述

我有一个 Kubernetes 操作员(例如:)kubectl get oracle_ctrl。现在我想为 kubectl 命令提供自定义参数。前任:kubectl apply oracle_ctrl --auto-discover=true --name=vcn1

我可以再写一个控制器来做同样的工作。但我不想再写一个控制器并利用现有的控制器。

是否可以使用 operator-sdk 为 kubectl 提供自定义参数?

标签: kubernetesoperator-sdk

解决方案


不,这是不可能的。

kubernetes/kubectl#914对此进行了一些进一步的讨论,但其基本描述是“我们应该开始提案和设计过程,最终写出比kubectl create支持它更好的东西”。您的 CRD 可以定义要显示的其他列,kubectl get但这实际上是唯一kubectl相关的扩展点。您可能会创建一个kubectl 插件或另一个 CLI 工具来满足您的需求。

与使用kubectl命令式工具相比,直接编写 YAML 工件并将它们提交到源代码控制通常是一种更好的做法。您可以使用 Helm 或 Kustomize 等工具对这些参数进行参数化。如果kubectl apply -f或者helm install是您将事物加载到集群中的主要方式,那么您不需要自定义 CLI 选项来完成这项工作。


推荐阅读