整合 Hono 和 Enmasse

Integrating Hono and Enmasse

我正在尝试使用 enmasse 部署 hono。为此,我已经安装了 enmasse 并在 repository.

之后创建了地址空间和地址

如 artifacthub 上 hono-doc 所述。首先我创建了一个秘密。

my_secret.yaml

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
stringData:
  amqp-credentials.properties: |
    username: hono
    password: HONO

并将其应用到 hono-namespace:

kubectl apply -f ./hono/my_secret.yaml -n hono

之后,我创建了自己的 values.yaml 文件来覆盖 hono 默认值, 如 "Integrating with an existing AMQP Messaging Network".

中所述

my_values.yaml

amqpMessagingNetworkExample:
  enabled: false

adapters:
  extraSecretMounts:
  - amqpNetwork:
      secretName: "mysecret"
      mountPath: "/etc/custom"

  amqpMessagingNetworkSpec:
    host: messaging-5355a0a.enmasse-infra
    port: 5672
    credentialsPath: /etc/custom/amqp-credentials.properties

  commandAndControlSpec:
    host: messaging-5355a0a.enmasse-infra
    port: 5672
    credentialsPath: /etc/custom/amqp-credentials.properties

  amqp:
    enabled: false

deviceRegistryExample:
  enabled: true
  type: mongodb
  addExampleData: false

mongodb:
  createInstance: true

grafana:
  enabled: false

prometheus:
  createInstance: false

至少我安装了 hono:

helm install -n hono -f ./hono/my_values.yaml c2e eclipse-iot/hono

但不幸的是,我收到错误并且 pods 没有 运行 好,特别是我从所有 pods 尝试连接到 enmasse-Amqp 网络的人那里收到这些错误:

  1. Mount-Error:秘密文件“amqp-credentials.properties”没有被挂载: Pod 的日志文件显示“没有这样的文件或目录”:

10:47:45.645 [vert.x-eventloop-thread-0] WARN o.e.h.config.ClientConfigProperties - could not load client credentials for [messaging-5355a0a.enmasse-infra:5672, role: Command & Control] from file [/etc/custom/amqp-credentials.properties] java.io.FileNotFoundException: /etc/custom/amqp-credentials.properties (No such file or directory)

  1. 错误的 AMQP 连接:出于某种原因,所有 pods 都尝试通过“amqps”连接到 enmasse,尽管我明确表示他们应该使用“amqp”通过端口号而不提供 crt-keys!我错了吗?

我做错了什么?

此外,如果有人可以提供示例性的“Hono+Enmasse”集成存储库,那就太好了。

谢谢

您不能在 adapters 级别指定额外的秘密安装。您需要为 each 适配器单独指定 extraSecretMounts 属性,例如对于 HTTP 和 MQTT 适配器:

adapters:
  http:
    extraSecretMounts:
      amqpNetwork:
        secretName: "mysecret"
        mountPath: "/etc/custom"
  mqtt:
    extraSecretMounts:
      amqpNetwork:
        secretName: "mysecret"
        mountPath: "/etc/custom"

另请注意,extraSecretMounts 值不是数组而是对象,即 amqpNetwork 属性.[=16 之前不能有 - 字符=]