12.5. 添加 Fabric8 Karaf 配置管理员支持
12.5.1. 添加 Fabric8 Karaf 配置管理员支持 复制链接链接已复制到粘贴板!
您可以将 Fabric8 Karaf 配置管理员支持添加到自定义 Karaf 分发中。
流程
打开项目的
pom.xml
,并将fabric8-karaf-cm
添加到startupFeatures
部分。pom.xml
<startupFeatures> ... <feature>fabric8-karaf-cm</feature> ... </startupFeatures>
<startupFeatures> ... <feature>fabric8-karaf-cm</feature> ... </startupFeatures>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.5.2. 添加 ConfigMap 注入 复制链接链接已复制到粘贴板!
fabric8-karaf-cm
提供了一个 ConfigAdmin
网桥,可在 Karaf 的 ConfigAdmin
中注入 ConfigMap
值。
流程
要通过 ConfigAdmin 网桥添加,ConfigMap 必须使用
karaf.pid
标记。karaf.pid
值对应于组件的 pid。例如,Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要定义配置,您可以使用单个属性名称。个别属性适用于大多数情况。它与
karaf/etc
中的 pid 文件相同。例如,Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.5.3. 配置插件 复制链接链接已复制到粘贴板!
fabric8-karaf-cm
提供了一个 ConfigurationPlugin
,它解析配置属性占位符。
要启用使用 fabric8-karaf-cm
插件的属性替换,您必须将 Java 属性 fabric8.config.plugin.enabled
设置为 true
。例如,您可以使用 Karaf 镜像中的 JAVA_OPTIONS
环境变量设置此属性,如下所示:
JAVA_OPTIONS=-Dfabric8.config.plugin.enabled=true
JAVA_OPTIONS=-Dfabric8.config.plugin.enabled=true
12.5.4. config Property Placeholders 复制链接链接已复制到粘贴板!
配置属性占位符示例如下所示:
my.service.cfg
amq.usr = $[k8s:secret:$[env:ACTIVEMQ_SERVICE_NAME]/username] amq.pwd = $[k8s:secret:$[env:ACTIVEMQ_SERVICE_NAME]/password] amq.url = tcp://$[env+service:ACTIVEMQ_SERVICE_NAME]
amq.usr = $[k8s:secret:$[env:ACTIVEMQ_SERVICE_NAME]/username]
amq.pwd = $[k8s:secret:$[env:ACTIVEMQ_SERVICE_NAME]/password]
amq.url = tcp://$[env+service:ACTIVEMQ_SERVICE_NAME]
my-service.xml
12.5.5. Fabric8 Karaf Config Admin 选项 复制链接链接已复制到粘贴板!
Fabric8 Karaf Config Admin 支持以下选项:
Name | default | 描述 |
---|---|---|
fabric8.config.plugin.enabled | false | enable ConfigurationPlugin |
fabric8.cm.bridge.enabled | true | 启用 ConfigAdmin 网桥 |
fabric8.config.watch | true | 启用查看 ConfigMap 更改 |
fabric8.config.merge | false | 在 ConfigAdmin 中启用合并 ConfigMap 值 |
fabric8.config.meta | true | 在 ConfigAdmin 网桥中启用注入 ConfigMap meta |
fabric8.pid.label | karaf.pid | 定义 ConfigAdmin 网桥查找的标签(即,需要选择的 ConfigMap 必须具有该标签;该值决定了它所关联的 PID 的值) |
fabric8.pid.filters | empty | 为 ConfigAdmin 网桥定义额外的条件,以选择 ConfigMap。支持的语法是:
例如,一个过滤器(如 -Dfabric8.pid.filters=appName=A;B,database.name=my.oracle.datasource )转换为 "give me all ConfigMaps,值为 A 或 B,标签 database.name 等于 my.oracle.datasource"。 |
ConfigurationPlugin
需要 Aries Blueprint CM 1.0.9
或更高版本。