小编alo*_*ras的帖子

如何使用client-go向Kubernetes API提交通用"runtime.Object"

我正在使用AWS'EKS,这是Kubernetes v1.10,我正在使用client-go v7.0.0.

我要做的是解析文件中包含多个Kubernetes资源定义的.yml文件,并将这些资源提交给Kubernetes API.我可以使用此代码成功解析文件scheme.Codecs.UniversalDeserializer().Decode,然后返回一个数组runtime.Object.

我知道所有Kubernetes资源都符合runtime.Object接口,但我找不到将通用接口提交给API的方法.我见过的大多数方法都使用了Deployment,Pod等具体类型的方法.

我已经看到了像这样的通用RESTClient的一些代码clientset.RESTClient().Put().Body(obj).Do(),但这不起作用,我无法弄明白.

我知道我的客户端配置正确,因为我可以成功列出所有Pod.

kubernetes kubernetes-apiserver client-go

8
推荐指数
2
解决办法
1459
查看次数

Postgres 从聚合行创建 JSON 对象

我在创建 JSON 对象时遇到了一些问题,其中对象的键是我在 Postgres 中聚合行的值。

这是我正在使用的表格:

create table if not exists safety_training_options (
  id serial primary key,
  option_type text not null,
  name text not null
)
Run Code Online (Sandbox Code Playgroud)

以及一些示例数据:

insert into safety_training_options (option_type, name)
values ('category', 'General Industry'),
       ('category', 'Maritime'),
       ('category', 'Construction'),
       ('frequency', 'Daily'),
       ('frequency', 'Weekly'),
       ('frequency', 'Bi-weekly'),
       ('method', 'Online'),
       ('method', 'Classroom');
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我的查询,它将为我提供聚合行:

select 
    option_type as type,
    json_agg(sto.name) as options
from safety_training_options as sto
group by sto.option_type;
Run Code Online (Sandbox Code Playgroud)

结果集:

????????????????????????????????????????
?    type    ?         options         ?
????????????????????????????????????????
? method     ? ["Online", "Classroom"] ?
? …
Run Code Online (Sandbox Code Playgroud)

sql postgresql

5
推荐指数
1
解决办法
4767
查看次数

詹金斯奴隶自我注册

我正在创建一个 Jenkins 主/从集群,但我无法找到让新从服务器自动向主服务器注册的方法。

我目前的设置是运行一些 Terraform 脚本来创建主站和 5 个从站。然后我必须登录到主节点并管理 Jenkins -> 管理节点 -> 新节点并手动创建我想要的节点数。

然后我 RDP 进入我的奴隶并运行命令java -jar agent.jar -jnlpUrl http://yourserver:port/computer/agent-name/slave-agent.jnlp。这工作得很好,但我想要一种方法来自动增加/减少代理的数量,而不必每次创建一个新的时都手动登录到从属。

是否有关于如何动态自注册节点的插件或一些我遗漏的文档?

注意:这仅适用于 Windows 节点。我正在使用 Kubernetes 插件来自动扩展/缩小 linux 节点,但是 Kubernetes 没有稳定的 Windows 节点支持,所以我不能使用它。我必须支持经典的 .NET 应用程序(不是 .NET Core),所以我必须在 Windows 节点上构建。

jenkins jenkins-plugins jenkins-cli

4
推荐指数
2
解决办法
5363
查看次数

Postgres动态创建序列

我正在编写一个有多个用户的应用程序,用户可以在应用程序内上传报告。

目前,我有一个“报告”表,其中包含所有已提交的报告,该表具有一个“ id”字段,该字段是表上的串行主键。

我指定的要求是,用户需要能够指定前缀和数字,以便他们的报告从此开始计数。例如,用户应该可以说他们的报告始于ABC-100,然后下一个报告是ABC-101,ABC-102,依此类推。

我想实现此目的的方式是,当用户创建一个帐户时,他可以指定前缀和起始编号,然后我将创建一个postgres序列,其中包含指定的前缀名称和minValue用户希望报告从此开始。

然后,当用户提交新报告时,我可以将report_number标记为nextval(prefix_sequence)。从理论上讲,这是可行的,但是我对postgres来说还很陌生,我想就这是对序列的良好使用还是更好的方法提供一些建议和反馈。

database postgresql database-design

2
推荐指数
1
解决办法
733
查看次数

为什么 LuaJIT/Openresty 可以使用已弃用的“arg”语言功能?

我的理解是LuaJIT使用Lua 5.1语法。在 Lua 5.1 中,“arg”功能已从语言中删除。

但是,以下代码可以工作。

// test.lua
local function foo()
  for k,v in pairs(arg) do
    print(k .. " " .. v)
  end
end

foo()
Run Code Online (Sandbox Code Playgroud)

我预计arg为零,但它存在并且正在执行 Lua 5.0 功能。

运行resty test.lua hello world结果为:

0 test.lua
1 hello
2 world
-1 /usr/local/bin/resty
Run Code Online (Sandbox Code Playgroud)

为什么这有效?Openresty 和 LuaJIT 可以使用的 5.1 语法是否有例外?

lua luajit openresty

2
推荐指数
1
解决办法
300
查看次数