11.11. OpenShift의 애플리케이션에서 ConfigMap 사용
OpenShift의 경우 배포 컨트롤러(dc)를 사용하여 애플리케이션을 실행하는 데 사용되는 포드에 configmap을 마운트할 수 있습니다.
ConfigMap 은 기밀이 아닌 데이터를 키-값 쌍으로 저장하는 데 사용되는 OpenShift 리소스입니다.
microprofile-platform Galleon 계층을 지정하여 microprofile-config-windowsrye 하위 시스템 및 서버 구성 파일에 확장을 추가한 후 CLI 스크립트를 사용하여 서버 구성에 새 ConfigSource 를 추가할 수 있습니다. CLI 스크립트를 Maven 프로젝트의 루트 디렉터리에 /scripts 디렉터리와 같은 액세스 가능한 디렉터리에 저장할 수 있습니다.
MicroProfile Config 기능은 SmallRye Config 구성 요소를 사용하여 JBoss EAP에서 구현되며 microprofile-config-undercloudrye 하위 시스템에서 제공합니다. 이 하위 시스템은 microprofile-platform Galleon 계층에 포함되어 있습니다.
사전 요구 사항
- Maven이 설치되어 있어야 합니다.
- JBoss EAP Maven 리포지토리를 구성했습니다.
- 애플리케이션을 부팅 가능한 JAR로 패키징했으며 JBoss EAP OpenShift 플랫폼에서 애플리케이션을 실행할 수 있습니다. OpenShift 플랫폼에서 부팅 가능한 JAR로 애플리케이션을 빌드하는 방법에 대한 자세한 내용은 JBoss EAP OpenShift 플랫폼에서 부팅 가능한 JAR 사용을 참조하십시오.
프로세스
프로젝트의 루트 디렉터리에
scripts라는 디렉터리를 생성합니다. 예를 들면 다음과 같습니다.$ mkdir scriptscli.properties파일을 생성하고 파일을/scripts디렉터리에 저장합니다. 이 파일에서config.path및config.ordinal시스템 속성을 정의합니다. 예를 들면 다음과 같습니다.config.path=/etc/config config.ordinal=200mp-config.cli와 같은 CLI 스크립트를 생성하고/scripts디렉터리와 같은 부팅 가능한 JAR의 액세스 가능한 디렉터리에 저장합니다. 다음 예제에서는mp-config.cli스크립트의 내용을 보여줍니다.# config map /subsystem=microprofile-config-smallrye/config-source=os-map:add(dir={path=${config.path}}, ordinal=${config.ordinal})mp-config.cliCLI 스크립트는 속성 파일에서 ordinal 및 path 값이 검색되는 새ConfigSource를 생성합니다.-
스크립트를 프로젝트의 루트 디렉터리에 있는
/scripts디렉터리에 저장합니다. 기존 플러그인 <configuration> 요소에 다음
구성 추출을추가합니다.<cli-sessions> <cli-session> <properties-file> scripts/cli.properties </properties-file> <script-files> <script>scripts/mp-config.cli</script> </script-files> </cli-session> </cli-sessions>애플리케이션을 패키징합니다.
$ mvn package-
oc login명령을 사용하여 OpenShift 인스턴스에 로그인합니다. 선택 사항: 이전에
target/openshift하위 디렉터리를 생성하지 않은 경우 다음 명령을 실행하여 suddirectory를 생성해야 합니다.$ mkdir target/openshift패키지 애플리케이션을 생성된 하위 디렉터리에 복사합니다.
$ cp target/microprofile-config-bootable.jar target/openshifttarget/openshift하위 디렉터리를 바이너리 입력으로 사용하여 애플리케이션을 빌드합니다.$ oc start-build microprofile-config-app --from-dir target/openshift참고OpenShift는 부팅 가능한 JAR 구성 파일에 CLI 스크립트 명령 세트를 적용하여 클라우드 환경에서 활성화합니다. Maven 프로젝트
/target디렉터리에서bootable-jar-build-artifacts/generated-cli-script.txt파일을 열어 이 스크립트에 액세스할 수 있습니다.ConfigMap을 생성합니다. 예를 들면 다음과 같습니다.$ oc create configmap microprofile-config-map --from-literal=name="Name comes from Openshift ConfigMap"dc를 사용하여
ConfigMap을 애플리케이션에 마운트합니다. 예를 들면 다음과 같습니다.$ oc set volume deployments/microprofile-config-app --add --name=config-volume \ --mount-path=/etc/config \ --type=configmap \ --configmap-name=microprofile-config-mapoc set volume명령을 실행한 후 애플리케이션이 새 구성 설정으로 다시 배포됩니다.출력을 테스트합니다.
$ curl http://$(oc get route microprofile-config-app --template='{{ .spec.host }}')/config/json다음은 예상되는 출력입니다.
{"result":"Hello Name comes from Openshift ConfigMap"}