10.5. 添加 Fabric8 Karaf 配置管理员支持
10.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
10.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
10.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
10.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
10.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 或更高版本。