Red Hat Camel K is deprecated
Red Hat Camel K is deprecated and the End of Life date for this product is June 30, 2025. For help migrating to the current go-to solution, Red Hat build of Apache Camel, see the Migration Guide.4.2. 런타임 구성 옵션 지정
실행 시 사용할 Camel K 통합에 대해 다음 런타임 구성 정보를 지정할 수 있습니다.
- 명령줄 또는 .properties 파일에서 제공하는 런타임 속성입니다.
- Camel K Operator가 통합을 시작할 때 런타임 속성으로 처리 및 구문 분석할 구성 값입니다. 로컬 텍스트 파일, OpenShift ConfigMap 또는 OpenShift 시크릿에 구성 값을 제공할 수 있습니다.
- 통합이 시작될 때 속성 파일로 구문 분석되지 않는 리소스 정보입니다. 로컬 텍스트 파일, 바이너리 파일, OpenShift ConfigMap 또는 OpenShift 시크릿에 리소스 정보를 제공할 수 있습니다.
다음 kamel 실행
옵션을 사용합니다.
--property
--property
옵션을 사용하여 명령줄에서 직접 런타임 속성을 지정하거나 Java*.properties
파일을 참조하여 지정합니다. Camel K Operator는 속성 파일의 내용을 실행 중인 통합user.properties
파일에 추가합니다.--config
통합이 시작될 때 Camel K Operator가 런타임 속성으로 처리하고 구문 분석할 구성 값을
--config
옵션을 사용하여 제공합니다.로컬 텍스트 파일(1MiB 최대 파일 크기), ConfigMap(3MB) 또는 시크릿(3MB)을 제공할 수 있습니다. 파일은 UTF-8 리소스여야 합니다. 구체화된 파일(제공하는 파일에서 통합 시작 시 생성됨)은 정확한 위치를 제공하지 않고도 통합 코드에서 참조할 수 있도록 클래스 경로 수준에서 사용할 수 있습니다.
참고: UTF-8이 아닌 리소스(예: 바이너리 파일)를 제공해야 하는 경우
--resource
옵션을 사용합니다.--resource
--resource
옵션을 사용하여 실행 중일 때 통합에 액세스할 리소스를 제공합니다. 로컬 텍스트 또는 바이너리 파일(1MiB 파일 크기), ConfigMap(3MB 최대값) 또는 시크릿(3MB 최대값)을 제공할 수 있습니다. 선택적으로 리소스에 대해 구체화된 파일의 대상을 지정할 수 있습니다. 예를 들어 HTTPS 연결을 설정하려면--resource
옵션을 사용하여 지정된 위치에서 예상되는 SSL 인증서( 바이너리 파일)를 제공합니다.Camel K Operator는 속성에 대한 리소스를 구문 분석하지 않으며 classpath에 리소스를 추가하지 않습니다. (클래스 경로에 리소스를 추가하려면 통합에서 JVM 특성을 사용할 수 있습니다).
4.2.1. 런타임 속성 제공
명령줄에서 직접 런타임 속성을 지정하거나 kamel run
명령의 --property
옵션을 사용하여 Java *.properties
파일을 참조하여 지정할 수 있습니다.
--property
옵션과의 통합을 실행하면 Camel K Operator에서 실행 중인 통합 user.properties
파일에 속성을 추가합니다.
4.2.1.1. 명령줄에서 런타임 속성 제공
런타임 시 명령줄에서 Camel K 통합 속성을 구성할 수 있습니다. 속성 자리 표시자(예: {{my.message}}
)를 사용하여 통합에서 속성을 정의할 때 명령줄에서 속성 값을 지정할 수 있습니다(예: --property my.message=Hello
). 단일 명령에서 여러 속성을 지정할 수 있습니다.
사전 요구 사항
프로세스
속성을 사용하는 Camel 통합을 개발합니다. 다음 간단한 예제에는
{{my.message}}
속성 자리 표시자가 포함되어 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow ... - from: uri: "timer:tick" steps: - set-body: constant: "{{my.message}}" - to: "log:info" ...
... - from: uri: "timer:tick" steps: - set-body: constant: "{{my.message}}" - to: "log:info" ...
다음 구문을 사용하여 통합을 실행하여 런타임 시 속성 값을 설정합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --property <property>=<value> <integration>
kamel run --property <property>=<value> <integration>
또는
--p
단축 표기법을 사용할 수 있습니다(--property
대신).Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --property <property>=<value> <integration>
kamel run --property <property>=<value> <integration>
예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --property my.message="Hola Mundo" HelloCamelK.java --dev
kamel run --property my.message="Hola Mundo" HelloCamelK.java --dev
또는
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --p my.message="Hola Mundo" HelloCamelK.java --dev
kamel run --p my.message="Hola Mundo" HelloCamelK.java --dev
다음은 예제 결과입니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ... [1] 2020-04-13 15:39:59.213 INFO [main] ApplicationRuntime - Listener org.apache.camel.k.listener.RoutesDumper@6e0dec4a executed in phase Started [1] 2020-04-13 15:40:00.237 INFO [Camel (camel-k) thread #1 - timer://java] info - Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hola Mundo from java] ...
... [1] 2020-04-13 15:39:59.213 INFO [main] ApplicationRuntime - Listener org.apache.camel.k.listener.RoutesDumper@6e0dec4a executed in phase Started [1] 2020-04-13 15:40:00.237 INFO [Camel (camel-k) thread #1 - timer://java] info - Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hola Mundo from java] ...
4.2.1.2. 속성 파일에 런타임 속성 제공
런타임 시 명령줄에서 속성 파일(*.properties
)을 지정하여 Camel K 통합을 위해 여러 속성을 구성할 수 있습니다. 속성 자리 표시자(예: {{my.items}}
)를 사용하여 통합에서 속성을 정의할 때 속성 파일(예: --p 파일 my-integration.properties
)을 사용하여 명령줄에서 속성 값을 지정할 수 있습니다.
사전 요구 사항
프로세스
통합 속성 파일을 생성합니다. 다음 예제는 이름이
my.properties
인 파일에서 가져온 것입니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow my.key.1=hello my.key.2=world
my.key.1=hello my.key.2=world
속성 파일에 정의된 속성을 사용하는 Camel 통합을 개발합니다. 다음 예제
Routing.java
통합에서는{{my.key.1}}
및{{my.key.2=world}}
속성 자리 표시자를 사용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow import org.apache.camel.builder.RouteBuilder; public class Routing extends RouteBuilder { @Override public void configure() throws Exception { from("timer:property-file") .routeId("property-file") .log("property file content is: {{my.key.1}} {{my.key.2}}"); } }
import org.apache.camel.builder.RouteBuilder; public class Routing extends RouteBuilder { @Override public void configure() throws Exception { from("timer:property-file") .routeId("property-file") .log("property file content is: {{my.key.1}} {{my.key.2}}"); } }
다음 구문을 사용하여 통합을 실행하여 속성 파일을 참조합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --property file:<my-file.properties> <integration>
kamel run --property file:<my-file.properties> <integration>
또는
--p
단축 표기법을 사용할 수 있습니다(--property
대신).Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --p file:<my-file.properties> <integration>
kamel run --p file:<my-file.properties> <integration>
예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run Routing.java --property:file=my.properties --dev
kamel run Routing.java --property:file=my.properties --dev
4.2.2. 구성 값 제공
kamel run
명령의 --config
옵션을 사용하여 Camel K 운영자가 런타임 속성으로 처리하고 구문 분석할 구성 값을 제공할 수 있습니다. 로컬 텍스트(UTF-8) 파일, OpenShift ConfigMap 또는 OpenShift 시크릿에 구성 값을 제공할 수 있습니다.
통합을 실행할 때 Camel K Operator는 제공된 파일을 구체화하고 클래스 경로에 추가하여 정확한 위치를 제공하지 않고도 통합 코드의 구성 값을 참조할 수 있도록 합니다.
4.2.2.1. 텍스트 파일 지정
구성 값이 포함된 UTF-8 텍스트 파일이 있는 경우 --config file:/path/to/file
옵션을 사용하여 실행 중인 통합의 classpath에서 파일을 사용할 수 있도록 할 수 있습니다.
사전 요구 사항
- Camel K 개발 환경 설정
구성 값이 포함된 하나 이상의 (binary이 아닌) 텍스트 파일이 있습니다.
예를 들어 다음 텍스트 줄이 포함된
resources-data.txt
라는 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow the file body
the file body
프로세스
구성 값이 포함된 텍스트 파일을 참조하는 Camel K 통합을 생성합니다.
예를 들어 다음 통합(
ConfigFileRoute.java
)에서는 런타임 시 classpath에서resources-data.txt
파일을 사용할 수 있을 것으로 예상합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow import org.apache.camel.builder.RouteBuilder; public class ConfigFileRoute extends RouteBuilder { @Override public void configure() throws Exception { from("timer:config-file") .setBody() .simple("resource:classpath:resources-data.txt") .log("resource file content is: ${body}"); } }
import org.apache.camel.builder.RouteBuilder; public class ConfigFileRoute extends RouteBuilder { @Override public void configure() throws Exception { from("timer:config-file") .setBody() .simple("resource:classpath:resources-data.txt") .log("resource file content is: ${body}"); } }
통합을 실행하고
--config
옵션을 사용하여 실행 중인 통합에서 사용할 수 있도록 텍스트 파일을 지정합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --config file:resources-data.txt ConfigFileRoute.java --dev
kamel run --config file:resources-data.txt ConfigFileRoute.java --dev
선택적으로
--config
옵션을 반복적으로 추가하여 두 개 이상의 파일을 제공할 수 있습니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --config file:resources-data1.txt --config file:resources-data2.txt ConfigFileRoute.java --dev
kamel run --config file:resources-data1.txt --config file:resources-data2.txt ConfigFileRoute.java --dev
4.2.2.2. ConfigMap 지정
구성 값이 포함된 OpenShift ConfigMap이 있고 Camel K 통합에서 사용할 수 있도록 ConfigMap을 구체화해야 하는 경우 --config configmap:<configmap-name> 구문을 사용합니다.
사전 요구 사항
- Camel K 개발 환경 설정
OpenShift 클러스터에 하나 이상의 ConfigMap 파일이 저장되어 있습니다.
예를 들어 다음 명령을 사용하여 ConfigMap을 생성할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create configmap my-cm --from-literal=my-configmap-key="configmap content"
oc create configmap my-cm --from-literal=my-configmap-key="configmap content"
프로세스
ConfigMap을 참조하는 Camel K 통합을 생성합니다.
예를 들어 다음 통합(
ConfigConfigmapRoute.java
)은my-cm
라는 ConfigMap에서my-configmap-key
라는 구성 값을 참조합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow import org.apache.camel.builder.RouteBuilder; public class ConfigConfigmapRoute extends RouteBuilder { @Override public void configure() throws Exception { from("timer:configmap") .setBody() .simple("resource:classpath:my-configmap-key") .log("configmap content is: ${body}"); } }
import org.apache.camel.builder.RouteBuilder; public class ConfigConfigmapRoute extends RouteBuilder { @Override public void configure() throws Exception { from("timer:configmap") .setBody() .simple("resource:classpath:my-configmap-key") .log("configmap content is: ${body}"); } }
통합을 실행하고
--config
옵션을 사용하여 실행 중인 통합에서 사용할 수 있도록 ConfigMap 파일을 구체화합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --config configmap:my-cm ConfigConfigmapRoute.java --dev
kamel run --config configmap:my-cm ConfigConfigmapRoute.java --dev
통합이 시작되면 Camel K Operator는 ConfigMap의 콘텐츠를 사용하여 OpenShift 볼륨을 마운트합니다.
참고: 클러스터에서 아직 사용할 수 없는 ConfigMap을 지정하면 Integration이 대기하고 ConfigMap을 사용할 수 있게 된 후에만 시작됩니다.
4.2.2.3. 시크릿 지정
OpenShift 보안을 사용하여 구성 정보를 안전하게 포함할 수 있습니다. Camel K 통합에 사용할 수 있도록 시크릿을 구체화하려면 --config secret
구문을 사용할 수 있습니다.
사전 요구 사항
- Camel K 개발 환경 설정
OpenShift 클러스터에 하나 이상의 시크릿이 저장되어 있습니다.
예를 들어 다음 명령을 사용하여 보안을 생성할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create secret generic my-sec --from-literal=my-secret-key="very top secret"
oc create secret generic my-sec --from-literal=my-secret-key="very top secret"
프로세스
ConfigMap을 참조하는 Camel K 통합을 생성합니다.
예를 들어 다음 통합(
ConfigSecretRoute.java
)은my-sec
이라는 시크릿에 있는my-secret
속성을 참조합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow import org.apache.camel.builder.RouteBuilder; public class ConfigSecretRoute extends RouteBuilder { @Override public void configure() throws Exception { from("timer:secret") .setBody() .simple("resource:classpath:my-secret") .log("secret content is: ${body}"); } }
import org.apache.camel.builder.RouteBuilder; public class ConfigSecretRoute extends RouteBuilder { @Override public void configure() throws Exception { from("timer:secret") .setBody() .simple("resource:classpath:my-secret") .log("secret content is: ${body}"); } }
통합을 실행하고
--config
옵션을 사용하여 실행 중인 통합에서 사용할 수 있도록 보안을 구체화합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --config secret:my-sec ConfigSecretRoute.java --dev
kamel run --config secret:my-sec ConfigSecretRoute.java --dev
통합이 시작되면 Camel K Operator는 Secret의 콘텐츠를 사용하여 OpenShift 볼륨을 마운트합니다.
4.2.2.4. ConfigMaps 또는 Secrets에 포함된 속성 참조
통합을 실행하고 --config
옵션을 사용하여 ConfigMap 또는 보안을 지정하면 Camel K Operator에서 ConfigMap 또는 Secret을 런타임 속성 파일로 구문 분석합니다. 통합 내에서 다른 런타임 속성을 참조할 때 속성을 참조할 수 있습니다.
사전 요구 사항
프로세스
속성이 포함된 텍스트 파일을 만듭니다.
예를 들어 다음 속성을 포함하는
my.properties
라는 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow my.key.1=hello my.key.2=world
my.key.1=hello my.key.2=world
속성 파일을 기반으로 ConfigMap 또는 보안을 생성합니다.
예를 들어 다음 명령을 사용하여 my.properties 파일에서 보안을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create secret generic my-sec --from-file my.properties
oc create secret generic my-sec --from-file my.properties
통합에서 보안에 정의된 속성을 참조하십시오.
예를 들어 다음 통합(
ConfigSecretPropertyRoute.java
)은my.key.1
및my.key.2
속성을 참조합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow import org.apache.camel.builder.RouteBuilder; public class ConfigSecretPropertyRoute extends RouteBuilder { @Override public void configure() throws Exception { from("timer:secret") .routeId("secret") .log("{{my.key.1}} {{my.key.2}}"); } }
import org.apache.camel.builder.RouteBuilder; public class ConfigSecretPropertyRoute extends RouteBuilder { @Override public void configure() throws Exception { from("timer:secret") .routeId("secret") .log("{{my.key.1}} {{my.key.2}}"); } }
통합을 실행하고
--config
옵션을 사용하여my.key.1
및my.key.2
속성이 포함된 Secret을 지정합니다.예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --config secret:my-sec ConfigSecretPropertyRoute.java --dev
kamel run --config secret:my-sec ConfigSecretPropertyRoute.java --dev
4.2.2.5. ConfigMap 또는 Secret에서 얻은 구성 값 필터링
ConfigMaps 및 Secrets는 둘 이상의 소스를 보유할 수 있습니다. 예를 들어 다음 명령은 두 소스의 시크릿 (my-sec-multi
)을 생성합니다.
oc create secret generic my-sec-multi --from-literal=my-secret-key="very top secret" --from-literal=my-secret-key-2="even more secret"
oc create secret generic my-sec-multi --from-literal=my-secret-key="very top secret" --from-literal=my-secret-key-2="even more secret"
--config configmap
또는 --config 시크릿
옵션을 사용한 후 /key
표기법을 사용하여 통합에서 하나의 소스로 검색하는 정보의 수량을 제한할 수 있습니다.
사전 요구 사항
- Camel K 개발 환경 설정
- 둘 이상의 소스를 보유한 ConfigMap 또는 Secret이 있습니다.
프로세스
ConfigMap 또는 Secret의 소스 중 하나에서 구성 값을 사용하는 통합을 생성합니다.
예를 들어 다음 통합(
ConfigSecretKeyRoute.java
)은my-sec-multi
시크릿의 소스 중 하나만의 속성을 사용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow import org.apache.camel.builder.RouteBuilder; public class ConfigSecretKeyRoute extends RouteBuilder { @Override public void configure() throws Exception { from("timer:secret") .setBody() .simple("resource:classpath:my-secret-key-2") .log("secret content is: ${body}"); } }
import org.apache.camel.builder.RouteBuilder; public class ConfigSecretKeyRoute extends RouteBuilder { @Override public void configure() throws Exception { from("timer:secret") .setBody() .simple("resource:classpath:my-secret-key-2") .log("secret content is: ${body}"); } }
--config secret
옵션과/key
표기법을 사용하여 통합을 실행합니다.예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --config secret:my-sec-multi/my-secret-key-2 ConfigSecretKeyRoute.java --dev
kamel run --config secret:my-sec-multi/my-secret-key-2 ConfigSecretKeyRoute.java --dev
통합 Pod를 확인하여 지정된 소스(예:
my-secret-key-2
)만 마운트되었는지 확인합니다.예를 들어 다음 명령을 실행하여 Pod의 모든 볼륨을 나열합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc set volume pod/<pod-name> --all
oc set volume pod/<pod-name> --all
4.2.3. 실행 중인 통합에 리소스 제공
kamel run 명령의 --resource
옵션을 지정하여 실행 중일 때 통합할 리소스를 제공할 수 있습니다. 로컬 텍스트 파일(1MiB 최대 파일 크기), ConfigMap(3MB) 또는 시크릿(3MB)을 지정할 수 있습니다. 필요한 경우 리소스에 대해 구체화된 파일의 대상을 지정할 수 있습니다. 예를 들어 HTTPS 연결을 설정하려면 알려진 위치에서 예상되는 바이너리 파일인 SSL 인증서를 제공해야 하므로 --resource 옵션을 사용합니다.
--resource
옵션을 사용하면 Camel K Operator에서 런타임 속성을 찾는 리소스를 구문 분석하지 않으며 리소스를 classpath에 추가하지 않습니다. (클래스 경로에 리소스를 추가하려면 JVM 특성을 사용할 수 있습니다.
4.2.3.1. 텍스트 또는 바이너리 파일을 리소스로 지정
구성 값이 포함된 텍스트 또는 바이너리 파일이 있는 경우 --resource file:/path/to/file
옵션을 사용하여 파일을 구체화할 수 있습니다. 기본적으로 Camel K Operator는 구체화된 파일을 /etc/camel/resources/
디렉터리에 복사합니다. 선택적으로 리소스의 대상 경로 지정에 설명된 대로 다른 대상 디렉터리를 지정할 수 있습니다.
사전 요구 사항
- Camel K 개발 환경 설정
- 구성 속성이 포함된 하나 이상의 텍스트 또는 바이너리 파일이 있습니다.
프로세스
사용자가 제공하는 파일의 내용을 읽는 Camel K 통합을 생성합니다.
예를 들어 다음 통합(
ResourceFileBinaryRoute.java
)의 압축을 풀고resources-data.zip
파일을 읽습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow import org.apache.camel.builder.RouteBuilder; public class ResourceFileBinaryRoute extends RouteBuilder { @Override public void configure() throws Exception { from("file:/etc/camel/resources/?fileName=resources-data.zip&noop=true&idempotent=false") .unmarshal().zipFile() .log("resource file unzipped content is: ${body}"); } }
import org.apache.camel.builder.RouteBuilder; public class ResourceFileBinaryRoute extends RouteBuilder { @Override public void configure() throws Exception { from("file:/etc/camel/resources/?fileName=resources-data.zip&noop=true&idempotent=false") .unmarshal().zipFile() .log("resource file unzipped content is: ${body}"); } }
통합을 실행하고
--resource
옵션을 사용하여 파일을 기본 대상 디렉터리(/etc/camel/resources/
)에 복사합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --resource file:resources-data.zip ResourceFileBinaryRoute.java -d camel-zipfile --dev
kamel run --resource file:resources-data.zip ResourceFileBinaryRoute.java -d camel-zipfile --dev
참고: 바이너리 파일을 지정하면 통합에서 파일 내용의 바이너리 표현이 생성되고 디코딩됩니다.
선택적으로
--resource
옵션을 반복적으로 추가하여 두 개 이상의 리소스를 제공할 수 있습니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --resource file:resources-data1.txt --resource file:resources-data2.txt ResourceFileBinaryRoute.java -d camel-zipfile --dev
kamel run --resource file:resources-data1.txt --resource file:resources-data2.txt ResourceFileBinaryRoute.java -d camel-zipfile --dev
4.2.3.2. ConfigMap을 리소스로 지정
구성 값이 포함된 OpenShift ConfigMap이 있고 ConfigMap을 통합을 위한 리소스로 구체화해야 하는 경우 --resource <configmap-file
> 옵션을 사용합니다.
사전 요구 사항
- Camel K 개발 환경 설정
OpenShift 클러스터에 하나 이상의 ConfigMap 파일이 저장되어 있습니다. 예를 들어 다음 명령을 사용하여 ConfigMap을 생성할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create configmap my-cm --from-literal=my-configmap-key="configmap content"
oc create configmap my-cm --from-literal=my-configmap-key="configmap content"
프로세스
OpenShift 클러스터에 저장된 ConfigMap을 참조하는 Camel K 통합을 생성합니다.
예를 들어 다음 통합(
ResourceConfigmapRoute.java
)은my-configmap-key
가 포함된my-cm
라는 ConfigMap을 참조합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow import org.apache.camel.builder.RouteBuilder; public class ResourceConfigmapRoute extends RouteBuilder { @Override public void configure() throws Exception { from("file:/etc/camel/resources/my-cm/?fileName=my-configmap-key&noop=true&idempotent=false") .log("resource file content is: ${body}"); } }
import org.apache.camel.builder.RouteBuilder; public class ResourceConfigmapRoute extends RouteBuilder { @Override public void configure() throws Exception { from("file:/etc/camel/resources/my-cm/?fileName=my-configmap-key&noop=true&idempotent=false") .log("resource file content is: ${body}"); } }
통합을 실행하고
--resource
옵션을 사용하여 실행 중인 통합에서 사용할 수 있도록 기본/etc/camel/resources/
디렉터리에 ConfigMap 파일을 구체화합니다.예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --resource configmap:my-cm ResourceConfigmapRoute.java --dev
kamel run --resource configmap:my-cm ResourceConfigmapRoute.java --dev
통합이 시작되면 Camel K Operator는 ConfigMap의 콘텐츠(예:
my-configmap-key
)를 사용하여 볼륨을 마운트합니다.
참고: 클러스터에서 아직 사용할 수 없는 ConfigMap을 지정하면 Integration이 대기하고 ConfigMap을 사용할 수 있게 된 후에만 시작됩니다.
4.2.3.3. 시크릿을 리소스로 지정
구성 정보가 포함된 OpenShift Secret이 있고 하나 이상의 통합에서 사용할 수 있는 리소스로 구체화해야 하는 경우 --resource <secret
> 구문을 사용합니다.
사전 요구 사항
- Camel K 개발 환경 설정
OpenShift 클러스터에 하나 이상의 Secrets 파일이 저장되어 있습니다. 예를 들어 다음 명령을 사용하여 보안을 생성할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create secret generic my-sec --from-literal=my-secret-key="very top secret"
oc create secret generic my-sec --from-literal=my-secret-key="very top secret"
프로세스
OpenShift 클러스터에 저장된 보안을 참조하는 Camel K 통합을 생성합니다.
예를 들어 다음 통합(
ResourceSecretRoute.java
)은my-sec
보안을 참조합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow import org.apache.camel.builder.RouteBuilder; public class ResourceSecretRoute extends RouteBuilder { @Override public void configure() throws Exception { from("file:/etc/camel/resources/my-sec/?fileName=my-secret-key&noop=true&idempotent=false") .log("resource file content is: ${body}"); } }
import org.apache.camel.builder.RouteBuilder; public class ResourceSecretRoute extends RouteBuilder { @Override public void configure() throws Exception { from("file:/etc/camel/resources/my-sec/?fileName=my-secret-key&noop=true&idempotent=false") .log("resource file content is: ${body}"); } }
통합을 실행하고
--resource
옵션을 사용하여 실행 중인 통합에서 사용할 수 있도록 기본/etc/camel/resources/
디렉터리에 보안을 구체화합니다.예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --resource secret:my-sec ResourceSecretRoute.java --dev
kamel run --resource secret:my-sec ResourceSecretRoute.java --dev
통합이 시작되면 Camel K Operator는 Secret의 콘텐츠(예:
my-sec
)를 사용하여 볼륨을 마운트합니다.
참고: 클러스터에서 아직 사용할 수 없는 보안을 지정하면 Integration이 대기하고 시크릿을 사용할 수 있게 된 후에만 시작됩니다.
4.2.3.4. 리소스의 대상 경로 지정
/etc/camel/resources/
디렉터리는 --resource
옵션으로 지정하는 리소스를 마운트하기 위한 기본 위치입니다. 리소스를 마운트할 다른 디렉터리를 지정해야 하는 경우 --resource @path
구문을 사용합니다.
사전 요구 사항
- Camel K 개발 환경 설정
- 하나 이상의 구성 속성을 포함하는 파일, ConfigMap 또는 Secret이 있습니다.
프로세스
구성 속성이 포함된 파일 ConfigMap 또는 Secret을 참조하는 Camel K 통합을 생성합니다. 예를 들어 다음 통합(
ResourceFileLocationRoute.java
)은myprops
파일을 참조합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow import org.apache.camel.builder.RouteBuilder; public class ResourceFileLocationRoute extends RouteBuilder { @Override public void configure() throws Exception { from("file:/tmp/?fileName=input.txt&noop=true&idempotent=false") .log("resource file content is: ${body}"); } }
import org.apache.camel.builder.RouteBuilder; public class ResourceFileLocationRoute extends RouteBuilder { @Override public void configure() throws Exception { from("file:/tmp/?fileName=input.txt&noop=true&idempotent=false") .log("resource file content is: ${body}"); } }
통합을 실행하고
@path
구문과 함께--resource
옵션을 사용하고 리소스 콘텐츠(파일, ConfigMap 또는 Secret)를 마운트할 위치를 지정합니다.예를 들어 다음 명령은
/tmp
디렉터리를 사용하여input.txt
파일을 마운트하도록 지정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --resource file:resources-data.txt@/tmp/input.txt ResourceFileLocationRoute.java --dev
kamel run --resource file:resources-data.txt@/tmp/input.txt ResourceFileLocationRoute.java --dev
통합의 pod를 확인하여 파일(예:
input.txt
)이 올바른 위치(예:tmp
디렉터리 )에 마운트되었는지 확인합니다. 예를 들어 다음 명령을 실행합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc exec <pod-name> -- cat /tmp/input.txt
oc exec <pod-name> -- cat /tmp/input.txt
4.2.3.5. ConfigMap 또는 Secret 데이터 필터링
ConfigMap 또는 보안을 생성할 때 두 개 이상의 정보 소스를 지정할 수 있습니다. 예를 들어 다음 명령은 두 소스의 ConfigMap( my-cm-multi
)을 생성합니다.
oc create configmap my-cm-multi --from-literal=my-configmap-key="configmap content" --from-literal=my-configmap-key-2="another content"
oc create configmap my-cm-multi --from-literal=my-configmap-key="configmap content" --from-literal=my-configmap-key-2="another content"
--resource
옵션과의 통합을 실행하면 기본적으로 두 개 이상의 소스로 생성된 ConfigMap 또는 Secret이 구체화됩니다.
ConfigMap 또는 Secret에서 복구할 수 있는 정보의 양을 제한하려면 ConfigMap 또는 시크릿 이름 뒤에 --resource
옵션의 /key 표기법을 지정할 수 있습니다. 예를 들어 --resource configmap:my-cm/my-key
또는 --resource secret:my-secret/my-key
.
--resource configmap
또는 --resource 시크릿
옵션 후 /key 표기법을 사용하여 통합에서 검색하는 정보의 양을 하나의 리소스로 제한할 수 있습니다.
사전 요구 사항
- Camel K 개발 환경 설정
- 둘 이상의 소스의 값을 보유하는 ConfigMap 또는 Secret이 있습니다.
프로세스
ConfigMap 또는 Secret의 리소스 중 하나에서 구성 값을 사용하는 통합을 생성합니다. 예를 들어 다음 통합(
ResourceConfigmapKeyLocationRoute.java
)은my-cm-multi
ConfigMap을 참조합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow import org.apache.camel.builder.RouteBuilder; public class ResourceConfigmapKeyLocationRoute extends RouteBuilder { @Override public void configure() throws Exception { from("file:/tmp/app/data/?fileName=my-configmap-key-2&noop=true&idempotent=false") .log("resource file content is: ${body} consumed from ${header.CamelFileName}"); } }
import org.apache.camel.builder.RouteBuilder; public class ResourceConfigmapKeyLocationRoute extends RouteBuilder { @Override public void configure() throws Exception { from("file:/tmp/app/data/?fileName=my-configmap-key-2&noop=true&idempotent=false") .log("resource file content is: ${body} consumed from ${header.CamelFileName}"); } }
통합을 실행하고
@path
구문과 함께--resource
옵션을 사용하고 소스 콘텐츠(파일, ConfigMap 또는 Secret)를 마운트할 위치를 지정합니다.예를 들어 다음 명령은 ConfigMap에 포함된 소스(
my-configmap-key-2@
) 중 하나만 사용하고/tmp/app/data
디렉토리를 사용하여 마운트하도록 지정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run --resource configmap:my-cm-multi/my-configmap-key-2@/tmp/app/data ResourceConfigmapKeyLocationRoute.java --dev
kamel run --resource configmap:my-cm-multi/my-configmap-key-2@/tmp/app/data ResourceConfigmapKeyLocationRoute.java --dev
통합의 pod를 확인하여 하나의 파일(예:
my-configmap-key-2
)만 올바른 위치(예:/tmp/app/data
디렉터리)에 마운트되었는지 확인합니다. 예를 들어 다음 명령을 실행합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc exec <pod-name> -- cat /tmp/app/data/my-configmap-key-2
oc exec <pod-name> -- cat /tmp/app/data/my-configmap-key-2