问题标签 [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.

0 投票
1 回答
3067 浏览

kubernetes - Kubernetes Ansible Operators - 修补现有 Kubernetes 资源

使用 ansible:是否可以使用 json 或 yaml 片段修补资源?我基本上希望能够完成与kubectl patch <Resource> <Name> --type='merge' -p='{"spec":{ "test":"hello }}'追加/修改资源规范相同的事情。

https://docs.ansible.com/ansible/latest/modules/k8s_module.html 是否可以使用 k8s ansible 模块做到这一点?它说如果资源已经存在并且设置了“状态:存在”,它将对其进行修补,但据我所知,它并没有修补

谢谢

0 投票
0 回答
53 浏览

kubernetes - 如何使用 Kubernetes 自定义资源作为部署配置?

我正在寻找一种解决方案,该解决方案可以在使用新数据更新配置(env-variable)后自动更新我的部署。由于 ConfigMaps 不支持这种通用推出,我正在考虑使用实现此目的的操作员 SDK 创建一个操作员。主要思想是创建一个 CRD 和一个包含配置的 CR 实例,在部署环境变量中使用该配置。当我的 CR 发生更改时,控制器将协调我的部署状态。因此我想知道如何在我的部署清单中使用 CR 数据?

0 投票
1 回答
107 浏览

go - 如何将 Kubernetes 自定义资源规范与 GO 控制器中的预期规范进行比较?

我正在尝试实现我的第一个 Kubernetes 运算符。我希望操作员控制器能够将正在运行的 pod 中的配置与自定义资源定义中定义的预期配置进行比较。

例如:自定义资源

上面的自定义资源已部署,3 个 pod 正在运行。进行了更改,以使配置“valueA”更改为 false。

在 GO 控制器协调功能中,我可以获取 TEST 实例并查看配置的“新”版本:

我想知道如何访问正在运行的 Pod 中的“valueA”的值,以便我可以比较和重新创建 Pod(如果它已更改)?

还有一个次要问题,我是否需要遍历 reconcile 函数中所有正在运行的 pod 来检查每个 pod,或者我可以将其作为单个操作执行吗?

0 投票
2 回答
587 浏览

go - operator-sdk:出现错误 - 为无效类型命中不支持的类型无效类型

我正在尝试使用 operator-sdk 创建 go 运算符,并执行以下步骤:

  • operator-sdk new --repo=github.com/myrepo/myoperator myoperator
  • cd myoperator
  • operator-sdk 添加 api --kind=MyOperator --api-version=app.example.com/v1alpha1 --skip-generation
  • operator-sdk 生成 k8s

在最后一步我得到错误:

我认为我错过了一些东西,但无法找出究竟是什么......有人可以告诉我出了什么问题吗?

谢谢

0 投票
2 回答
793 浏览

go - 通用客户端。获取自定义 Kubernetes GO 运算符

在使用 golang 中的 operator-sdk 实现的自定义 Kubernetes 运算符中,是否可以直接调用自定义 API 并将对象作为 YAML 检索?

例如。我有一个自定义资源

我不提前知道规范中的哪些字段将与副本分开。因此,我无法创建包含用于保存条目的结构的 go 类型。

所以而不是这样做:

我希望能够做类似的事情:

然后解析 instanceYAML 以检查条目。

0 投票
1 回答
145 浏览

docker - 没有operator-sdk直接构建operator镜像?

我在Operator SDK的帮助下创建了我的 Kubernetes 操作员 现在我想用我的 GitHub 存储库进行一些自动构建,所以当我将某些内容推送到主服务器以触发操作员映像的构建时。

我可以使用go build + docker build(用于构建图像)而不是operator-sdk build

因为如果它在做同样的工作,我不想再依赖一种工具来构建图像。

operator-sdk build--verbose它运行,看起来它只做这两件事(go build + docker build),但我不确定。如果我不想存在这样的验证,我不想跳过它们,那么在这些命令之前可能会有一些验证和检查。

使用godocker直接构建图像而不是一个坏主意operator-sdk?因为我不想在构建过程中做一些特别的事情,所以如果可以避免的话,我只想在构建基础架构中不再依赖它。

0 投票
0 回答
500 浏览

go - Kubernetes Go 操作员使用秘密数据

是否可以从 Kubernetes go 操作符中读取和使用 Kubernetes 密钥的数据值?具体来说,我需要协调功能才能调用私人 github。授权令牌将存储在 k8s 机密中。因此,我需要能够加载指定的秘密并从秘密数据中提取令牌。

我能够得到这个秘密:

输出显示正确的秘密数据:

我期待我可以在 github 请求 Authorization 标头中使用 secret.Data["Token"] 作为字符串:

这不起作用,日志将令牌字符串显示为一系列不可读的 unicode 字符。

我在这里是否缺少一些解码步骤或类似步骤,或者这是否可能?

0 投票
0 回答
59 浏览

go - Kubernetes Go 算子更新

我有一个自定义的 Kubernetes Go 操作员,我希望能够以零停机时间更新正在运行的实例/pod。即,我想在删除旧 pod 之前创建一个新 pod 并让它运行。

做这个的最好方式是什么?

目前我正在这样做:

这可行,但当然旧的 pod 会在新的 pod 准备好之前被删除。

理想情况下,我想将删除(第 2 步)与等待循环交换,以便删除仅在新 pod 处于 PodSucceeded 或 PodRunning 阶段时发生。当我这样做时,我遇到了其他问题(我认为是因为从初始 pod create 调用了 reconcile 函数并且副本数变得不正确)。

0 投票
1 回答
331 浏览

kubernetes - 使用 operator-sdk 生成“oneOf”属性

我目前是 operator-sdk 的新手,但是,我想问一些事情。

我正在尝试oneOf在规范中生成包含 CRD 的属性。但是,我被困在了这个任务中。

当我在google上搜索时,我没有找到使用operator-sdk实现该属性的方法。

如果我想实现生成属性oneOf作为我的 CRD,有什么办法吗?

例如,

谢谢。

0 投票
1 回答
134 浏览

kubernetes - Kubernetes 控制器使用 GO 中 pod 输出的值更新 CR 状态字段

使用Operator-sdk,我部署了一个 CR,它有一个带有 pod 的 Job。CR 有一个 Status 结构,如下所示

Pod 进行一些处理并打印输出 TestStatus 和 TestCount 值。operator-sdk 控制器如何使用作业的 Pod 输出中的值更新 CR 的 TestStatus 和 TestCount 字段?