1.5. 사용자 정의


사용 가능한 모든 사용자 지정 옵션은 OpenShift 구성 옵션에서 사용할 수 있습니다.

다음 섹션에서는 몇 가지 예제를 제공합니다.

1.5.1. 경로 노출

Quarkus 애플리케이션의 경로를 노출하려면 다음을 수행합니다.

quarkus.openshift.route.expose=true
작은 정보

application.properties 파일에 이 속성을 추가할 필요가 없습니다. 대신 명령줄 인수로 전달할 수 있습니다.

./mvnw clean package -Dquarkus.openshift.route.expose=true

아래에 나열된 모든 속성에 적용됩니다.

1.5.1.1. Route 리소스 보안

들어오는 연결을 보호하기 위해 OpenShift는 다양한 유형의 TLS 종료를 제공하여 인증을 제공합니다.

경로 보안 방법에 대한 자세한 내용은 OpenShift Container Platform 설명서를 참조하십시오.

다음 예제에서는 "quarkus.openshift.route.tls" 속성을 추가하여 패스스루 종료를 사용하여 보안 경로를 구성하는 방법을 보여줍니다.

quarkus.openshift.route.expose=true
quarkus.openshift.route.target-port=https
## Route TLS configuration:
quarkus.openshift.route.tls.termination=passthrough
quarkus.openshift.route.tls.insecure-edge-termination-policy=None

1.5.2. 라벨

생성된 리소스에 라벨을 추가하려면 다음을 수행합니다.

quarkus.openshift.labels.foo=bar

1.5.3. 주석

생성된 리소스에 주석을 추가하려면 다음을 수행합니다.

quarkus.openshift.annotations.foo=bar

1.5.4. 환경 변수

OpenShift는 환경 변수를 정의하는 여러 방법을 제공합니다.

  • 키/값 쌍
  • 시크릿 또는 ConfigMap에서 모든 값 가져오기
  • 시크릿 또는 ConfigMap에서 지정된 필드에 의해 식별되는 단일 값 보간
  • 동일한 리소스 내의 필드에서 값 보간

1.5.4.1. 키/값 쌍의 환경 변수

생성된 리소스에서 키/값 쌍을 환경 변수로 추가하려면 다음을 수행합니다.

quarkus.openshift.env.vars.my-env-var=foobar

위의 명령은 MY_ENV_VAR=foobar 를 환경 변수로 추가합니다. my-env-var 키는 대문자로 변환되고 대시는 MY_ENV_VAR 으로 대체됩니다.

1.5.4.2. 시크릿의 환경 변수

Secret 의 모든 키/값 쌍을 환경 변수로 추가하려면 다음 구성을 적용하여 각 보안을 쉼표(,)로 소스로 사용할 수 있도록 분리합니다.

quarkus.openshift.env.secrets=my-secret,my-other-secret

컨테이너 정의에서 다음을 생성하는 것은 다음과 같습니다.

envFrom:
  - secretRef:
      name: my-secret
      optional: false
  - secretRef:
      name: my-other-secret
      optional: false

다음 코드는 my-secret Secret의 keyName 필드에 의해 식별된 값을 foo 환경 변수로 추출합니다.

quarkus.openshift.env.mapping.foo.from-secret=my-secret
quarkus.openshift.env.mapping.foo.with-key=keyName

컨테이너의 env 섹션에 다음을 생성합니다.

- env:
  - name: FOO
    valueFrom:
      secretKeyRef:
        key: keyName
        name: my-secret
        optional: false

1.5.4.3. ConfigMap의 환경 변수

ConfigMap 의 모든 키/값 쌍을 환경 변수로 추가하려면 다음 구성을 적용하여 각 ConfigMap 을 쉼표(,)로 소스로 사용하도록 분리합니다.

quarkus.openshift.env.configmaps=my-config-map,another-config-map

컨테이너 정의에서 다음을 생성하는 것은 다음과 같습니다.

envFrom:
  - configMapRef:
      name: my-config-map
      optional: false
  - configMapRef:
      name: another-config-map
      optional: false

다음은 my-config-map ConfigMap의 keyName 필드에 의해 식별된 값을 foo 환경 변수로 추출합니다.

quarkus.openshift.env.mapping.foo.from-configmap=my-configmap
quarkus.openshift.env.mapping.foo.with-key=keyName

컨테이너의 env 섹션에 다음을 생성합니다.

- env:
  - name: FOO
    valueFrom:
      configMapKeyRef:
        key: keyName
        name: my-configmap
        optional: false

1.5.4.4. 필드의 환경 변수

다른 필드의 값을 사용하여 소스로 사용할 필드의 경로를 지정하여 새 환경 변수를 추가할 수도 있습니다. 예를 들면 다음과 같습니다.

quarkus.openshift.env.fields.foo=metadata.name

1.5.4.5. 생성된 배포 리소스 변경

배포 리소스를 생성하는 옆에 application.properties 를 사용하여 DeploymentConfig,StatefulSet,Job 또는 CronJob 리소스를 가져오도록 선택할 수도 있습니다.

quarkus.openshift.deployment-kind=StatefulSet
1.5.4.5.1. 작업 리소스 생성

작업 리소스를 생성하려면 application.properties:을 사용하여 다음 속성을 추가해야 합니다.

quarkus.openshift.deployment-kind=Job
중요

Picocli 확장을 사용하는 경우 기본적으로 Job 리소스가 생성됩니다.

Kubernetes 작업에서 quarkus.openshift.arguments 속성을 통해 사용하는 인수를 제공할 수 있습니다. 예를 들어 quarkus.openshift.arguments=A,B 속성을 추가합니다.

마지막으로 OpenShift에 설치될 때마다 Kubernetes 작업이 시작됩니다. Kubernetes 작업을 실행하는 방법에 대한 자세한 내용은 예제 작업 실행을 참조하십시오.

quarkus.openshift.job.xxx 아래의 속성을 사용하여 나머지 Kubernetes 작업 구성을 구성할 수 있습니다(자세한 내용은 link:https://content-stage.docs.redhat.com//en/documentation/red_hat_build_of_quarkus/3.20/html/deploying_your_red_hat_build_of_quarkus_applications_to_openshift_container_platform/deploying-to-openshift#quarkus-kubernetes_quarkus-openshift-job-parallelism[quarkus.openshift.job.parallelism 참조).

1.5.4.5.2. CronJob 리소스 생성

CronJob 리소스를 생성하려면 application.properties 파일을 사용하여 다음 속성을 추가해야 합니다.

quarkus.openshift.deployment-kind=CronJob
# Cron expression to run the job every hour
quarkus.openshift.cron-job.schedule=0 * * * *
중요

CronJob 리소스에는 quarkus.openshift.cron-job.schedule 속성을 통해 작업을 시작할 시기를 지정하려면 Cron 표현식이 필요합니다. thet를 제공하지 않으면 빌드가 실패합니다.

quarkus.openshift.cron-job.xxx 아래의 속성을 사용하여 나머지 Kubernetes CronJob 구성을 구성할 수 있습니다(자세한 내용은 quarkus.openshift.cron-job.parallelism).

1.5.4.6. 검증

예를 들어 두 정의 간의 충돌(예: 값을 잘못 할당하고 변수가 필드에서 파생됨을 지정)하면 빌드 시 오류가 발생합니다. 애플리케이션을 클러스터에 배포하기 전에 문제를 해결할 수 있습니다. 여기서 문제의 원인을 진단하기가 더 어려울 수 있습니다.

마찬가지로 두 개의 중복 정의(예: 동일한 시크릿에서 삽입을 두 번 정의함)해도 문제가 발생하지 않지만 해당 정의를 복제하지 않을 수 있음을 알리는 경고를 보고합니다.

1.5.4.6.1. 이전 버전과의 호환성

이전 버전의 OpenShift 확장에서는 환경 변수를 추가하기 위해 다른 구문을 지원했습니다. 이전 구문은 계속 지원되지만 더 이상 사용되지 않으며 새 구문으로 마이그레이션하는 것이 좋습니다.

Expand
표 1.1. 이전 구문과 새 구문 비교
 

Old

새로운 사항

 

일반 변수

quarkus.openshift.env-vars.my-env-var.value=foobar

quarkus.openshift.env.vars.my-env-var=foobar

 

필드에서

quarkus.openshift.env-vars.my-env-var.field=foobar

quarkus.openshift.env.fields.my-env-var=foobar

 

ConfigMap에서 모두

quarkus.openshift.env-vars.xxx.configmap=foobar

quarkus.openshift.env.configmaps=foobar

 

시크릿에서 모두

quarkus.openshift.env-vars.xxx.secret=foobar

quarkus.openshift.env.secrets=foobar

 

하나의 시크릿 필드에서

quarkus.openshift.env-vars.foo.secret=foobar

quarkus.openshift.env.mapping.foo.from-secret=foobar

 
 

quarkus.openshift.env-vars.foo.value=field

quarkus.openshift.env.mapping.foo.with-key=field

 

하나의 ConfigMap 필드에서

quarkus.openshift.env-vars.foo.configmap=foobar

quarkus.openshift.env.mapping.foo.from-configmap=foobar

 
 

quarkus.openshift.env-vars.foo.value=field

quarkus.openshift.env.mapping.foo.with-key=field

 
참고
If you redefine the same variable using the new syntax while keeping the old syntax, **ONLY** the new version is kept, and a warning will be issued to alert you of the problem.
For example, if you define both `quarkus.openshift.env-vars.my-env-var.value=foobar` and `quarkus.openshift.env.vars.my-env-var=newValue`, the extension generates an environment variable `MY_ENV_VAR=newValue` and issues a warning.

1.5.5. 볼륨 마운트

OpenShift 확장을 사용하면 사용자가 애플리케이션에 대한 볼륨 및 마운트를 모두 구성할 수 있습니다. 간단한 구성으로 모든 볼륨을 마운트할 수 있습니다.

quarkus.openshift.mounts.my-volume.path=/where/to/mount

그러면 my-volume 볼륨의 마운트가 /where/to/mount 에 추가됩니다. 아래 섹션에 표시된 대로 볼륨 자체를 구성할 수 있습니다.

1.5.5.1. 시크릿 볼륨

quarkus.openshift.secret-volumes.my-volume.secret-name=my-secret

1.5.5.2. ConfigMap 볼륨

quarkus.openshift.config-map-volumes.my-volume.config-map-name=my-config-map

1.5.5.3. 영구 볼륨 클레임

quarkus.openshift.pvc-volumes.my-pvc.claim-name=my-pvc
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동