问题标签 [confd]

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 回答
418 浏览

kubernetes - 启动时“注入”配置文件

我有许多遗留服务正在运行,它们从磁盘读取它们的配置文件和一个单独的守护进程,当它们在 zookeeper 中更改时更新这些文件(有点类似于confd)。

对于大多数这些类型的配置,我们希望转移到像模型这样的更多环境变量,其中配置在 pod 的生命周期内是固定的。然而,我们需要将外部配置文件作为事实来源,因为服务正在从遗留模型过渡到 kubernetes。我很好奇在 kubernetes 中是否有一种干净的方法可以做到这一点。

我们正在追求的当前模型的简化版本是:

  1. 创建一个 docker 映像,该映像具有用于获取配置文件并将它们写入磁盘的实用程序。然后写入 /donepath/done 文件。
  2. 主图像等到完成的文件存在。然后允许正常的服务启动进行。
  3. 使用空的 dir 卷和卷挂载将 conf 从帮助映像获取到主映像。

我不断看到这个问题的实例,我“只是”需要在启动时将几个文件放入 docker 映像中(以允许每个 env/canary/etc 差异),并且每次运行所有这些机器似乎都是一种负担扔给开发人员。我很好奇在 kubernetes 或即将出现的情况下是否有更简单的方法可以做到这一点。

0 投票
1 回答
475 浏览

docker - dnsmasq 跨 docker 容器的奇怪行为

我有一个运行 docker 容器的 CoreOS 实例,该容器运行dnsmasq. 目前dnsmasq配置只设置为记录所有查询并在调试模式下运行,所以它应该只做缓存。

当我尝试从不同的容器中使用dig,nslookup或简单地运行时,ping google.com我会返回Bad hostname: google.com,并且我可以在日志查询中看到请求多次进入,就好像正在重试一样。

如果我尝试从运行 CoreOS 的主机上运行相同的命令,一次尝试就可以解决所有问题。

我的计划是dnsmasq在集群中的每台 CoreOS 机器上运行 ,并让它支持confd,以便所有服务都可以解析适当的对应物。

我将 Alpine linux 用于我的基本映像,但我尝试在 Ubuntu 和 Debian 映像中运行这些命令,结果相同。

0 投票
1 回答
1401 浏览

nginx - nginx conf 外推的环境变量

confd用来根据我的环境渲染我的配置文件

我的配置:

confd运行良好

但是生成的文件没有解析变量

  • 我在这里做错了吗?
  • 我该如何调试呢?
0 投票
1 回答
1513 浏览

docker - confd新手试图让模板中的工作获得“用于比较的无效类型”

我导出了一个变量:

我有模板: file.tmpl :

当我跑步时,confd我得到:

我是新手confd。如何将 OS 环境变量与值进行比较,并根据它们从模板中生成不同的结果输出文件?

0 投票
1 回答
2108 浏览

go - Go Templates - 检查 json 列表中是否存在键

我正在使用confd进行动态 nginx 服务重新配置,并且在使用 Go 模板时遇到了一些困难。我有一个名为 json 的对象$data,并且$data.subsets可能包含一个名为“addresses”的键——如果满足该条件,我只想在循环内执行模板。

我已经尝试过各种事情,比如$data.subsets[0].addresses你在下面看到的,这是完全错误的。我不太确定如何正确地做到这一点。

这是我的 nginx 模板的一部分,我只想在至少有 1 个上游服务时渲染,而不是在没有/不可用的情况下渲染。

模板之后是 json 对象,用于$data成功或失败。

提前感谢您的帮助,非常感谢!

$data没有安排 Pod的示例:

$data有 pod 运行但不健康的示例:

$data有 pod 正在运行且可用的示例。这是我希望渲染模板迭代的唯一条件。

0 投票
1 回答
831 浏览

kubernetes - 从 kubernetes-etcd 检索端点以获取 haproxy

我尝试使用 confd 从我的 kubernetes-etcd-cluster 中检索 kubernetes 端点以获取 haproxy。

执行 confd 时,它总是返回错误,找不到该键 '/registry':

但是使用 etcdctl 在“/registry”中/下方列出可以正常工作。

单个端点也可以:

但是,使用 curl 列出与上面相同的端点会失败:

为什么我不能用 curl 列出任何东西,而 etcdctl 有效?

任何人都可以对此有所了解吗?

0 投票
1 回答
807 浏览

string - 如何在 go 模板中移动切片?

我正在使用confd通过模板填充文件。

在这个文件中,我想要一个移动和插入的元素列表。此切片包含字符串,如

(实际上,它是我使用splitconfd 函数拆分的字符串)。我希望,在每个容器上,能够过滤出容器名称并将列表移动到我的容器首先出现之后的那些。

举个例子,container-2我想得到结果

如何在 confd go 模板中做到这一点?我想我知道如何在 go 中做到这一点(但我在那种特定语言中不是那么好),但我不知道如何只使用模板来做到这一点......

0 投票
0 回答
80 浏览

bash - 如何对注入 \r 的 bash 参数执行输入验证?

我有一个 bash 文件,它需要一个参数。这在 ConfD CLI 中用于命令。但是,如果用户使用 \r 元字符,它会抛出我的程序。

示例(在 ConfD 外壳上):

在我的 bash 文件中显示 $@ 时:

关于如何解决这个问题的任何建议?或者有没有办法禁用 ConfD CLI 本身的元字符?

0 投票
1 回答
58 浏览

json - 为了从带有键的操作列表中获取所有行,post 请求中的 json 主体是什么?

我已将 yang 模型中的操作数据列表定义为:

我使用 opendaylight api (org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream) 将请求中的 json 主体转换为 org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode,以便最终为 confd 服务器生成 XML rpc。就我而言,我想从此操作列表中获取所有行,然后尝试将 json 设置为:

我会得到异常:“输入缺少侦听器状态的一些键”然后我可以将键值添加到 json 正文:

这种情况下,我只能拿到一排。我也尝试将键值留空:

然后响应将是所有键值而不是所有行。所以现在我的问题是,为了在不知道键值的情况下获取列表中的所有行,json 将是什么?这应该是可行的,因为我发现 XML 请求可以做到这一点。但我无法弄清楚匹配的 json 会是什么。

谢谢。

0 投票
1 回答
381 浏览

ssm - Confd 忽略了我的 aws 配置中设置的角色?

我目前正在尝试使用 SSM 作为密钥提供者来设置一个 confd POC,我们目前在 AWS 上有一个帐户,它是根帐户和多个角色来分隔环境。

目前我的 AWS 配置看起来像这样

给定命令,这对我来说很好

把我为这个 poc 创建的密钥还给我

对于 confd 虽然它没有

我做了一个简短的测试,并在 root 帐户而不是角色帐户中创建了密钥 /eric,之后它按我的预期工作,这让我想知道,是否有任何隐藏的配置 confd 使其“使用”角色? 因为目前它似乎没有考虑到这个角色。

我的 confd 模板看起来像

我的 confd 配置看起来像

有人可以就这个具体问题给我任何指导吗?