12.5. Fabric8 Karaf Config 관리자 지원 추가
12.5.1. Fabric8 Karaf Config 관리자 지원 추가
사용자 지정 Karaf 배포에 Fabric8 Karaf Config 관리자 지원을 추가할 수 있습니다.
절차
프로젝트의
pom.xml
을 열고startupFeatures
섹션에fabric8-karaf-cm
를 추가합니다.pom.xml
<startupFeatures> ... <feature>fabric8-karaf-cm</feature> ... </startupFeatures>
12.5.2. ConfigMap 삽입 추가
fabric8-karaf-cm
는 Karaf의 ConfigAdmin
에 ConfigMap
값을 삽입하는 ConfigAdmin
브리지를 제공합니다.
절차
ConfigAdmin 브리지에서 추가하려면 ConfigMap에
karaf.pid
라는 레이블이 지정되어야 합니다.karaf.pid
값은 구성 요소의 pid에 해당합니다. 예를 들면 다음과 같습니다.kind: ConfigMap apiVersion: v1 metadata: name: myconfig labels: karaf.pid: com.mycompany.bundle data: example.property.1: my property one example.property.2: my property two
구성을 정의하려면 단일 속성 이름을 사용할 수 있습니다. 개별 속성은 대부분의 경우 작동합니다.
karaf/etc
의 pid 파일과 동일합니다. 예를 들면 다음과 같습니다.kind: ConfigMap apiVersion: v1 metadata: name: myconfig labels: karaf.pid: com.mycompany.bundle data: com.mycompany.bundle.cfg: | example.property.1: my property one example.property.2: my property two
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
12.5.4. 구성 속성 위치 소유자
구성 속성 자리 표시자의 예는 다음과 같습니다.
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]
my-service.xml
<?xml version="1.0" encoding="UTF-8"?> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0" xsi:schemaLocation=" http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd"> <cm:property-placeholder persistent-id="my.service" id="my.service" update-strategy="reload"/> <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent"> <property name="userName" value="${amq.usr}"/> <property name="password" value="${amq.pwd}"/> <property name="brokerURL" value="${amq.url}"/> </bean> </blueprint>
12.5.5. Fabric8 Karaf Config 관리자 옵션
Fabric8 Karaf Config Admin은 다음 옵션을 지원합니다.
이름 | 기본 | 설명 |
---|---|---|
fabric8.config.plugin.enabled | false | ConfigurationPlugin 활성화 |
fabric8.cm.bridge.enabled | true | ConfigAdmin 브리지 활성화 |
fabric8.config.watch | true | ConfigMap 변경 감시 활성화 |
fabric8.config.merge | false | ConfigAdmin에서 병합 ConfigMap 값 활성화 |
fabric8.config.meta | true | ConfigAdmin 브리지에서 ConfigMap 메타 삽입 활성화 |
fabric8.pid.label | karaf.pid | ConfigAdmin 브리지가 찾는 레이블을 정의합니다(즉, 선택해야 하는 ConfigMap에는 해당 레이블이 있어야 합니다. 해당 레이블의 값은 연결된 PID를 결정합니다.) |
fabric8.pid.filters | 빈 | ConfigMap을 선택하려면 ConfigAdmin 브릿지에 대한 추가 조건을 정의합니다. 지원되는 구문은 다음과 같습니다.
예를 들어 -Dfabric8.pid.filters=appNames=appNames=A;B,database.name=my.oracle.datasource 와 같은 필터가 "give me all ConfigMaps that have a label appName with values A 또는 B and a label database.name equals to my.oracle.datasource"로 변환됩니다. |
ConfigurationPlugin
에는 Aries 블루프린트 CM 1.0.9
이상이 필요합니다.