如何定义Kafka Sink中不同环境下的s3bucket名称



我目前正在为不同的环境设置我的aws s3存储桶,这样我就可以在dev, tqa, stg和prd中拥有数据。在dev中我的bucket的名字是s3.dev.kafka.sink,而在tqa中它的名字是s3. tka .kafka。每个Sink都与其正确的环境相关联。Kafka Connect网站上的文档没有指定如何设置环境,所以我按照下面的方式做了,但是我一直得到桶名命名不正确的错误。

我把它放在秘密的yaml文件

apiVersion: kubernetes-client.io/v1
kind: ExternalSecret
metadata:
name: kafka-sink-s3-secret
namespace: namespace
spec:
backendType: secretManager
data:
-key: s3.tqa.kafka.sink
name: bucket_name
property: bucket_name

在部署文件

env:
-name: bucket_name
valueFrom:
secretKeyRef:
name:kaka-sink-s3-secret
key: bucket_name

我将在配置中指定桶名:"s3.bucket.name":"'"$bucket_name"'"

但是部署失败。知道我如何指定为s3.{{ENV}}.kafka.sink,以便它在自己的环境中运行正确的桶名在aws

开箱即用,Kafka Connect没有任何方法访问AWS SDK定义的环境变量(至少是密钥和配置文件)

听起来你需要使用Kafka Connect API的ConfigProvider

下面是Github上的一个示例,您需要编译并加载到您的Docker映像中- https://github.com/giogt/kafka-env-config-provider

在连接器属性中,像这样使用

"bucket.name": "${env:ENVIRONMENT_VARIABLE_NAME}"

您应该能够使用Helm更好地将/template从秘密/部署资源定义中的完整桶名中分离出来

相关内容

  • 没有找到相关文章

最新更新