问题标签 [operator-sdk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 如何将 Kubernetes 操作员错误传播到 kubectl 命令行?
我有一个 Kubernetes 操作员,它根据自定义资源配置创建一个新的部署。有一些错误情况会导致失败,并跳过部署创建步骤。是否可以在命令行上显示错误文本?
目前我有:
当用户创建自定义对象时,不会创建部署,但命令行显示自定义对象已成功创建。
操作员的日志显示错误,自定义对象的描述显示事件。我希望在 kubectl apply 命令之后显示事件文本。
kubernetes - 在 Operator-SDK 中,多个 Patch 在一个协调功能中
我正在使用 operator-sdk 实现 operator。
我对 operator SDK( )Patch
中的 API有一些疑问。client.Client
有两个 Patch APIClient.Patch
和Client.Status().Patch
.
据我所知,第一个(Client.Patch
)将充当补丁字段,但Status
在资源中除外。另一个(Client.Status().Patch
)将修补Status
资源中的字段。
在这一点上,我可以在一个 Reconcile 函数中多次使用Patch
(无论是什么Client.Status().Patch
或)API 吗?Client.Patch
我认为Patch
API 会更改资源版本,因此当我在一个 Reconcile 函数中多次调用 API 时 API 不能正常工作Patch
,但是 APIs( Patch
) 工作良好(我实际上在一个 Reconcile 函数中调用了 2 次),正如我所观察到的。
如果有我误解的知识,请给我建议。
谢谢。
go - Golang Api Kind Struct Creation 上的类型冲突
在 client-go 中创建 types.go 时遇到问题。
按照下面的“卡夫卡”种类......
我有 Kafka Kind 的架构如下
而当我需要定义 Spec.kafka 类型时
我面临两种 kafka 结构类型的问题。这是错误的。
go - 向 Kubernetes GO Operator 添加自定义 Webhook
我正在围绕 kubernetes Go Operator 进行 POC,以在应用程序中执行一些异步操作,并且我希望从 python 应用程序中获取回调到 Operator,然后可以继续更新资源元数据,例如更改资源状态字段。
我知道 Kubernetes Go Operator SDK 使用的控制器使用在特定端口上运行的 API 服务器。但它可以用作自定义 API 服务器,我可以在其中设置 webhook 的工作路径吗?
预期回调 API 的示例:
我希望在调用此 API 时在运算符内部运行一个过程。
我搜索了文档,找不到相关的东西。我可以在 Operator 中运行单独的 API Server 吗?如果它必须监听与内置控制器不同的端口,我很好。
kubernetes - Operator 将 ConfigMap 或 Secret 传递给控制器的最佳实践
目前,我是新手,正在研究 K8s Operator-sdk。我有一个初始化 Deployment 对象的 ReconcileController,该 Deployment 需要 configmap 和秘密资源。如
我想知道如何将 configmap 和秘密资源传递给控制器。我想可能有两种选择:
方法一:我先创建了configmap对象和secret对象,然后把它们的名字放在CRD里,然后ReconcileController就会收到configmap/secret的名字,就可以访问configmap对象和secret对象了。
方法 2:我将 configmap/secret 原始数据放在磁盘上,在 ReconcileController 中,我读取 configmap/secret 数据并使用 K8s API 动态生成 configmap/secret 对象,然后我的 Deployment 可以访问它们。对于这种方式,我感觉 ReconcileController 是一个循环运行,而我希望 configmap/secret 可以生成一次,我不确定是否可行。
我认为这是一个非常常见的情况,但我不知道什么是最佳实践。
我很欣赏你的想法和观点。
kubernetes - Operator 获取 Deployment 配置的最佳实践
我在做operator-sdk,在控制器中,我们经常需要创建一个Deployment对象,而Deployment资源有很多配置项,比如环境变量或者端口定义等等。我想知道获取这些值的最佳方法是什么,我不想对它们进行硬编码,例如 variable_a 或 variable_b。
可能,您可以将它们作为规范放入 CRD,然后将它们传递给 Operator Controller;或者你可以把它们放在 configmap 中,然后将 configmap 名称传递给 Operator Controller,Operator Controller 可以访问 configmap 来获取它们;或者,也许您可以放入模板文件,然后在操作员控制器中,控制器必须读取该模板文件。
处理这种情况的最佳方法或最佳实践是什么?感谢您分享您的想法或观点。
mongodb - mongo inside ansible-operator image
I need the mongo shell installed inside the ansible-operator image.
My first attempt was to use this Dockerfile:
Unsurprisingly, this didn't worked.
"stderr_lines": ["/usr/bin/mongo: /lib64/libcurl.so.4: no version information available (required by /usr/bin/mongo)", "Failed global initialization: InvalidSSLConfiguration Can not set up PEM key file."]
Can anyone help me?
kubernetes - 如何访问 3rd-party 自定义资源定义?
我正在研究 Operator-SDK。在我的操作员控制器中,我尝试创建一个 Istio 自定义资源——虚拟服务。虚拟服务的定义如下:
在这里,我认为首先需要做一些事情:
- 获取 Istio API 模块
- 在我的控制器代码中,导入 istio virtualservices 包
- 如何创建/更新虚拟服务资源
我的问题是怎么做?因为我以前从来没有这样做过,所以不得不寻求帮助如何做到这一点。
kubernetes - 通过在 Kubernetes 中创建命名空间自动创建资源/对象
我在想办法吗?如果我创建一个新的命名空间,那么我希望它自动为该服务帐户创建一个 RBAC 规则。
我知道一种方法是创建一个操作员,这样就有一个由协调器/api服务器跟踪的事件,它根据 CRD 创建资源。还有其他方法吗?
kubernetes - 减少kubernetes operator的权限
我是 Kubernetes 世界的新手,但前段时间我使用 OperatorSDK 和 Golang 开发了一个 Kubernetes 运算符。我使用集群管理员角色来运行操作员 pod,但现在我想减少操作员可以使用的资源。
是否有一些工具可以扫描操作员的代码并生成适当的集群角色?或者有什么聪明的方法可以找到运营商使用了哪些资源?