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 ). 단일 명령에서 여러 속성을 지정할 수 있습니다.

사전 요구 사항

프로세스

  1. 속성을 사용하는 Camel 통합을 개발합니다. 다음 간단한 예제에는 {{my.message}} 속성 자리 표시자가 포함되어 있습니다.

    Copy to Clipboard Toggle word wrap
    ...
    - from:
       uri: "timer:tick"
       steps:
         - set-body:
             constant: "{{my.message}}"
         - to: "log:info"
    ...
  2. 다음 구문을 사용하여 통합을 실행하여 런타임 시 속성 값을 설정합니다.

    Copy to Clipboard Toggle word wrap
    kamel run --property <property>=<value> <integration>

    또는 --p 단축 표기법을 사용할 수 있습니다( --property대신).

    Copy to Clipboard Toggle word wrap
    kamel run --property <property>=<value> <integration>

    예를 들면 다음과 같습니다.

    Copy to Clipboard Toggle word wrap
    kamel run --property my.message="Hola Mundo" HelloCamelK.java --dev

    또는

    Copy to Clipboard Toggle word wrap
    kamel run --p my.message="Hola Mundo" HelloCamelK.java --dev

    다음은 예제 결과입니다.

    Copy to Clipboard Toggle word wrap
    ...
    [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 )을 사용하여 명령줄에서 속성 값을 지정할 수 있습니다.

사전 요구 사항

프로세스

  1. 통합 속성 파일을 생성합니다. 다음 예제는 이름이 my.properties 인 파일에서 가져온 것입니다.

    Copy to Clipboard Toggle word wrap
    my.key.1=hello
    my.key.2=world
  2. 속성 파일에 정의된 속성을 사용하는 Camel 통합을 개발합니다. 다음 예제 Routing.java 통합에서는 {{my.key.1}}{{my.key.2=world}} 속성 자리 표시자를 사용합니다.

    Copy to Clipboard Toggle word wrap
    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}}");
    
      }
    }
  3. 다음 구문을 사용하여 통합을 실행하여 속성 파일을 참조합니다.

    Copy to Clipboard Toggle word wrap
    kamel run --property file:<my-file.properties> <integration>

    또는 --p 단축 표기법을 사용할 수 있습니다( --property대신).

    Copy to Clipboard Toggle word wrap
    kamel run --p file:<my-file.properties> <integration>

    예를 들면 다음과 같습니다.

    Copy to Clipboard Toggle word wrap
    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 Toggle word wrap
    the file body

프로세스

  1. 구성 값이 포함된 텍스트 파일을 참조하는 Camel K 통합을 생성합니다.

    예를 들어 다음 통합(ConfigFileRoute.java)에서는 런타임 시 classpath에서 resources-data.txt 파일을 사용할 수 있을 것으로 예상합니다.

    Copy to Clipboard Toggle word wrap
    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}");
    
      }
    }
  2. 통합을 실행하고 --config 옵션을 사용하여 실행 중인 통합에서 사용할 수 있도록 텍스트 파일을 지정합니다. 예를 들면 다음과 같습니다.

    Copy to Clipboard Toggle word wrap
    kamel run --config file:resources-data.txt ConfigFileRoute.java --dev

    선택적으로 --config 옵션을 반복적으로 추가하여 두 개 이상의 파일을 제공할 수 있습니다. 예를 들면 다음과 같습니다.

    Copy to Clipboard Toggle word wrap
    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 Toggle word wrap
    oc create configmap my-cm --from-literal=my-configmap-key="configmap content"

프로세스

  1. ConfigMap을 참조하는 Camel K 통합을 생성합니다.

    예를 들어 다음 통합( ConfigConfigmapRoute.java)은 my-cm 라는 ConfigMap에서 my-configmap-key 라는 구성 값을 참조합니다.

    Copy to Clipboard Toggle word wrap
    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}");
    
      }
    }
  2. 통합을 실행하고 --config 옵션을 사용하여 실행 중인 통합에서 사용할 수 있도록 ConfigMap 파일을 구체화합니다. 예를 들면 다음과 같습니다.

    Copy to Clipboard Toggle word wrap
    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 Toggle word wrap
    oc create secret generic my-sec --from-literal=my-secret-key="very top secret"

프로세스

  1. ConfigMap을 참조하는 Camel K 통합을 생성합니다.

    예를 들어 다음 통합( ConfigSecretRoute.java)은 my-sec 이라는 시크릿에 있는 my-secret 속성을 참조합니다.

    Copy to Clipboard Toggle word wrap
    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}");
    
      }
    }
  2. 통합을 실행하고 --config 옵션을 사용하여 실행 중인 통합에서 사용할 수 있도록 보안을 구체화합니다. 예를 들면 다음과 같습니다.

    Copy to Clipboard Toggle word wrap
    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을 런타임 속성 파일로 구문 분석합니다. 통합 내에서 다른 런타임 속성을 참조할 때 속성을 참조할 수 있습니다.

사전 요구 사항

프로세스

  1. 속성이 포함된 텍스트 파일을 만듭니다.

    예를 들어 다음 속성을 포함하는 my.properties 라는 파일을 만듭니다.

    Copy to Clipboard Toggle word wrap
    my.key.1=hello
    my.key.2=world
  2. 속성 파일을 기반으로 ConfigMap 또는 보안을 생성합니다.

    예를 들어 다음 명령을 사용하여 my.properties 파일에서 보안을 생성합니다.

    Copy to Clipboard Toggle word wrap
    oc create secret generic my-sec --from-file my.properties
  3. 통합에서 보안에 정의된 속성을 참조하십시오.

    예를 들어 다음 통합( ConfigSecretPropertyRoute.java)은 my.key.1my.key.2 속성을 참조합니다.

    Copy to Clipboard Toggle word wrap
    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}}");
    
      }
    }
  4. 통합을 실행하고 --config 옵션을 사용하여 my.key.1my.key.2 속성이 포함된 Secret을 지정합니다.

    예를 들면 다음과 같습니다.

    Copy to Clipboard Toggle word wrap
    kamel run --config secret:my-sec ConfigSecretPropertyRoute.java --dev

4.2.2.5. ConfigMap 또는 Secret에서 얻은 구성 값 필터링

ConfigMaps 및 Secrets는 둘 이상의 소스를 보유할 수 있습니다. 예를 들어 다음 명령은 두 소스의 시크릿 (my-sec-multi)을 생성합니다.

Copy to Clipboard Toggle word wrap
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 표기법을 사용하여 통합에서 하나의 소스로 검색하는 정보의 수량을 제한할 수 있습니다.

사전 요구 사항

프로세스

  1. ConfigMap 또는 Secret의 소스 중 하나에서 구성 값을 사용하는 통합을 생성합니다.

    예를 들어 다음 통합(ConfigSecretKeyRoute.java)은 my-sec-multi 시크릿의 소스 중 하나만의 속성을 사용합니다.

    Copy to Clipboard Toggle word wrap
    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}");
      }
    }
  2. --config secret 옵션과 /key 표기법을 사용하여 통합을 실행합니다.

    예를 들면 다음과 같습니다.

    Copy to Clipboard Toggle word wrap
    kamel run --config secret:my-sec-multi/my-secret-key-2 ConfigSecretKeyRoute.java --dev
  3. 통합 Pod를 확인하여 지정된 소스(예: my-secret-key-2)만 마운트되었는지 확인합니다.

    예를 들어 다음 명령을 실행하여 Pod의 모든 볼륨을 나열합니다.

    Copy to Clipboard Toggle word wrap
    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/ 디렉터리에 복사합니다. 선택적으로 리소스의 대상 경로 지정에 설명된 대로 다른 대상 디렉터리를 지정할 수 있습니다.

사전 요구 사항

프로세스

  1. 사용자가 제공하는 파일의 내용을 읽는 Camel K 통합을 생성합니다.

    예를 들어 다음 통합(ResourceFileBinaryRoute.java)의 압축을 풀고 resources-data.zip 파일을 읽습니다.

    Copy to Clipboard Toggle word wrap
    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}");
    
      }
    }
  2. 통합을 실행하고 --resource 옵션을 사용하여 파일을 기본 대상 디렉터리(/etc/camel/resources/)에 복사합니다. 예를 들면 다음과 같습니다.

    Copy to Clipboard Toggle word wrap
    kamel run --resource file:resources-data.zip ResourceFileBinaryRoute.java -d camel-zipfile --dev

    참고: 바이너리 파일을 지정하면 통합에서 파일 내용의 바이너리 표현이 생성되고 디코딩됩니다.

    선택적으로 --resource 옵션을 반복적으로 추가하여 두 개 이상의 리소스를 제공할 수 있습니다. 예를 들면 다음과 같습니다.

    Copy to Clipboard Toggle word wrap
    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 Toggle word wrap
    oc create configmap my-cm --from-literal=my-configmap-key="configmap content"

프로세스

  1. OpenShift 클러스터에 저장된 ConfigMap을 참조하는 Camel K 통합을 생성합니다.

    예를 들어 다음 통합( ResourceConfigmapRoute.java)은 my-configmap-key 가 포함된 my-cm 라는 ConfigMap을 참조합니다.

    Copy to Clipboard Toggle word wrap
    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}");
    
      }
    }
  2. 통합을 실행하고 --resource 옵션을 사용하여 실행 중인 통합에서 사용할 수 있도록 기본 /etc/camel/resources/ 디렉터리에 ConfigMap 파일을 구체화합니다.

    예를 들면 다음과 같습니다.

    Copy to Clipboard Toggle word wrap
    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 Toggle word wrap
    oc create secret generic my-sec --from-literal=my-secret-key="very top secret"

프로세스

  1. OpenShift 클러스터에 저장된 보안을 참조하는 Camel K 통합을 생성합니다.

    예를 들어 다음 통합( ResourceSecretRoute.java)은 my-sec 보안을 참조합니다.

    Copy to Clipboard Toggle word wrap
    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}");
    
      }
    }
  2. 통합을 실행하고 --resource 옵션을 사용하여 실행 중인 통합에서 사용할 수 있도록 기본 /etc/camel/resources/ 디렉터리에 보안을 구체화합니다.

    예를 들면 다음과 같습니다.

    Copy to Clipboard Toggle word wrap
    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 구문을 사용합니다.

사전 요구 사항

프로세스

  1. 구성 속성이 포함된 파일 ConfigMap 또는 Secret을 참조하는 Camel K 통합을 생성합니다. 예를 들어 다음 통합( ResourceFileLocationRoute.java)은 myprops 파일을 참조합니다.

    Copy to Clipboard Toggle word wrap
    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}");
    
      }
    }
  2. 통합을 실행하고 @path 구문과 함께 --resource 옵션을 사용하고 리소스 콘텐츠(파일, ConfigMap 또는 Secret)를 마운트할 위치를 지정합니다.

    예를 들어 다음 명령은 /tmp 디렉터리를 사용하여 input.txt 파일을 마운트하도록 지정합니다.

    Copy to Clipboard Toggle word wrap
    kamel run --resource file:resources-data.txt@/tmp/input.txt ResourceFileLocationRoute.java --dev
  3. 통합의 pod를 확인하여 파일(예: input.txt)이 올바른 위치(예: tmp 디렉터리 )에 마운트되었는지 확인합니다. 예를 들어 다음 명령을 실행합니다.

    Copy to Clipboard Toggle word wrap
    oc exec <pod-name> -- cat /tmp/input.txt

4.2.3.5. ConfigMap 또는 Secret 데이터 필터링

ConfigMap 또는 보안을 생성할 때 두 개 이상의 정보 소스를 지정할 수 있습니다. 예를 들어 다음 명령은 두 소스의 ConfigMap( my-cm-multi)을 생성합니다.

Copy to Clipboard Toggle word wrap
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 표기법을 사용하여 통합에서 검색하는 정보의 양을 하나의 리소스로 제한할 수 있습니다.

사전 요구 사항

프로세스

  1. ConfigMap 또는 Secret의 리소스 중 하나에서 구성 값을 사용하는 통합을 생성합니다. 예를 들어 다음 통합( ResourceConfigmapKeyLocationRoute.java)은 my-cm-multi ConfigMap을 참조합니다.

    Copy to Clipboard Toggle word wrap
    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}");
    
      }
    }
  2. 통합을 실행하고 @path 구문과 함께 --resource 옵션을 사용하고 소스 콘텐츠(파일, ConfigMap 또는 Secret)를 마운트할 위치를 지정합니다.

    예를 들어 다음 명령은 ConfigMap에 포함된 소스(my-configmap-key-2@) 중 하나만 사용하고 /tmp/app/data 디렉토리를 사용하여 마운트하도록 지정합니다.

    Copy to Clipboard Toggle word wrap
    kamel run --resource configmap:my-cm-multi/my-configmap-key-2@/tmp/app/data ResourceConfigmapKeyLocationRoute.java --dev
  3. 통합의 pod를 확인하여 하나의 파일(예: my-configmap-key-2)만 올바른 위치(예: /tmp/app/data 디렉터리)에 마운트되었는지 확인합니다. 예를 들어 다음 명령을 실행합니다.

    Copy to Clipboard Toggle word wrap
    oc exec <pod-name> -- cat /tmp/app/data/my-configmap-key-2
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat, Inc.