3.3. 서버 구성 요소 구성
3.3.1. 보안 또는 ConfigMap을 파일 또는 환경 변수로 Red Hat OpenShift Dev Spaces 컨테이너에 마운트
Secret은 다음과 같은 중요한 데이터를 저장하는 OpenShift 오브젝트입니다.
- 사용자 이름
- 암호
- 인증 토큰
암호화된 형태로 제공됩니다.
사용자는 다음과 같이 OpenShift Dev Spaces 관리 컨테이너에 구성이 포함된 중요한 데이터 또는 ConfigMap이 포함된 OpenShift 보안을 마운트할 수 있습니다.
- 파일
- 환경 변수
마운트 프로세스에서는 표준 OpenShift 마운트 메커니즘을 사용하지만 추가 주석과 레이블이 필요합니다.
3.3.1.1. OpenShift Dev Spaces 컨테이너에 파일로 시크릿 또는 ConfigMap 마운트
사전 요구 사항
- Red Hat OpenShift Dev Spaces의 실행 중인 인스턴스.
프로세스
OpenShift Dev Spaces가 배포된 OpenShift 프로젝트에서 새 OpenShift Secret 또는 ConfigMap을 생성합니다. 생성하려는 오브젝트의 레이블은 레이블 세트와 일치해야 합니다.
-
app.kubernetes.io/part-of: che.eclipse.org
-
app.kubernetes.io/component: <DEPLOYMENT_NAME>-<OBJECT_KIND>
&
lt;DEPLOYMENT_NAME
>은 다음 배포에 해당합니다.-
devspaces-dashboard
-
devfile-registry
-
plugin-registry
devspaces
및
-
&
lt;OBJECT_KIND>
는 다음 중 하나입니다.Secret
또는
-
configmap
-
예 3.4. 예제:
apiVersion: v1 kind: Secret metadata: name: custom-settings labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: devspaces-secret ...
또는
apiVersion: v1 kind: ConfigMap metadata: name: custom-settings labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: devspaces-configmap ...
주석 값을 구성합니다. 주석은 지정된 오브젝트가 파일로 마운트되었음을 나타냅니다.
-
Che.eclipse.org/mount-as: file
- 오브젝트가 파일로 마운트됨을 나타냅니다. -
Che.eclipse.org/mount-path: < TARGET_PATH
> - 필요한 마운트 경로를 제공합니다.
-
예 3.5. 예제:
apiVersion: v1 kind: Secret metadata: name: custom-data annotations: che.eclipse.org/mount-as: file che.eclipse.org/mount-path: /data labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: devspaces-secret ...
또는
apiVersion: v1 kind: ConfigMap metadata: name: custom-data annotations: che.eclipse.org/mount-as: file che.eclipse.org/mount-path: /data labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: devspaces-configmap ...
OpenShift 오브젝트에는 이름이 컨테이너에 마운트된 원하는 파일 이름과 일치해야 하는 여러 항목이 포함될 수 있습니다.
예 3.6. 예제:
apiVersion: v1
kind: Secret
metadata:
name: custom-data
labels:
app.kubernetes.io/part-of: che.eclipse.org
app.kubernetes.io/component: devspaces-secret
annotations:
che.eclipse.org/mount-as: file
che.eclipse.org/mount-path: /data
data:
ca.crt: <base64 encoded data content here>
또는
apiVersion: v1
kind: ConfigMap
metadata:
name: custom-data
labels:
app.kubernetes.io/part-of: che.eclipse.org
app.kubernetes.io/component: devspaces-configmap
annotations:
che.eclipse.org/mount-as: file
che.eclipse.org/mount-path: /data
data:
ca.crt: <data content here>
그러면 ca.crt
라는 파일이 OpenShift Dev Spaces 컨테이너의 /data
경로에 마운트됩니다.
OpenShift Dev Spaces 컨테이너를 변경하려면 Secret 또는 ConfigMap 오브젝트를 완전히 다시 생성합니다.
3.3.1.2. OpenShift Dev Spaces 컨테이너에 하위 경로로 시크릿 또는 ConfigMap 마운트
사전 요구 사항
- Red Hat OpenShift Dev Spaces의 실행 중인 인스턴스.
프로세스
OpenShift Dev Spaces가 배포된 OpenShift 프로젝트에서 새 OpenShift Secret 또는 ConfigMap을 생성합니다. 생성하려는 오브젝트의 레이블은 레이블 세트와 일치해야 합니다.
-
app.kubernetes.io/part-of: che.eclipse.org
-
app.kubernetes.io/component: <DEPLOYMENT_NAME>-<OBJECT_KIND>
&
lt;DEPLOYMENT_NAME
>은 다음 배포에 해당합니다.-
devspaces-dashboard
-
devfile-registry
-
plugin-registry
devspaces
및
-
&
lt;OBJECT_KIND>
는 다음 중 하나입니다.Secret
또는
-
configmap
-
예 3.7. 예제:
apiVersion: v1 kind: Secret metadata: name: custom-settings labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: devspaces-secret ...
또는
apiVersion: v1 kind: ConfigMap metadata: name: custom-settings labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: devspaces-configmap ...
주석 값을 구성합니다. 주석은 지정된 오브젝트가 하위 경로로 마운트되었음을 나타냅니다.
-
Che.eclipse.org/mount-as: subpath
- 오브젝트가 subPath로 마운트됨을 나타냅니다. -
Che.eclipse.org/mount-path: < TARGET_PATH
> - 필요한 마운트 경로를 제공합니다.
-
예 3.8. 예제:
apiVersion: v1 kind: Secret metadata: name: custom-data annotations: che.eclipse.org/mount-as: subpath che.eclipse.org/mount-path: /data labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: devspaces-secret ...
또는
apiVersion: v1 kind: ConfigMap metadata: name: custom-data annotations: che.eclipse.org/mount-as: subpath che.eclipse.org/mount-path: /data labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: devspaces-configmap ...
OpenShift 오브젝트에는 이름이 컨테이너에 마운트된 파일 이름과 일치해야 하는 여러 항목이 포함될 수 있습니다.
예 3.9. 예제:
apiVersion: v1
kind: Secret
metadata:
name: custom-data
labels:
app.kubernetes.io/part-of: che.eclipse.org
app.kubernetes.io/component: devspaces-secret
annotations:
che.eclipse.org/mount-as: subpath
che.eclipse.org/mount-path: /data
data:
ca.crt: <base64 encoded data content here>
또는
apiVersion: v1
kind: ConfigMap
metadata:
name: custom-data
labels:
app.kubernetes.io/part-of: che.eclipse.org
app.kubernetes.io/component: devspaces-configmap
annotations:
che.eclipse.org/mount-as: subpath
che.eclipse.org/mount-path: /data
data:
ca.crt: <data content here>
그러면 ca.crt
라는 파일이 OpenShift Dev Spaces 컨테이너의 /data
경로에 마운트됩니다.
OpenShift Dev Spaces 컨테이너를 변경하려면 Secret 또는 ConfigMap 오브젝트를 완전히 다시 생성합니다.
3.3.1.3. OpenShift Dev Spaces 컨테이너에 환경 변수로 시크릿 또는 ConfigMap 마운트
사전 요구 사항
- Red Hat OpenShift Dev Spaces의 실행 중인 인스턴스.
프로세스
OpenShift Dev Spaces가 배포된 OpenShift 프로젝트에서 새 OpenShift Secret 또는 ConfigMap을 생성합니다. 생성하려는 오브젝트의 레이블은 레이블 세트와 일치해야 합니다.
-
app.kubernetes.io/part-of: che.eclipse.org
-
app.kubernetes.io/component: <DEPLOYMENT_NAME>-<OBJECT_KIND>
&
lt;DEPLOYMENT_NAME
>은 다음 배포에 해당합니다.-
devspaces-dashboard
-
devfile-registry
-
plugin-registry
devspaces
및
-
&
lt;OBJECT_KIND>
는 다음 중 하나입니다.Secret
또는
-
configmap
-
예 3.10. 예제:
apiVersion: v1 kind: Secret metadata: name: custom-settings labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: devspaces-secret ...
또는
apiVersion: v1 kind: ConfigMap metadata: name: custom-settings labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: devspaces-configmap ...
주석 값을 구성합니다. 주석은 지정된 오브젝트가 환경 변수로 마운트되었음을 나타냅니다.
-
Che.eclipse.org/mount-as: env
- 오브젝트가 환경 변수로 마운트됨을 나타냅니다. -
Che.eclipse.org/env-name: <Fcnf _ENV
> - 개체 키 값을 마운트하는 데 필요한 환경 변수 이름을 제공합니다.
-
예 3.11. 예제:
apiVersion: v1 kind: Secret metadata: name: custom-settings annotations: che.eclipse.org/env-name: FOO_ENV che.eclipse.org/mount-as: env labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: devspaces-secret data: mykey: myvalue
또는
apiVersion: v1 kind: ConfigMap metadata: name: custom-settings annotations: che.eclipse.org/env-name: FOO_ENV che.eclipse.org/mount-as: env labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: devspaces-configmap data: mykey: myvalue
그러면 다음 두 가지 환경 변수가 생성됩니다.
-
FOO_ENV
-
myValue
OpenShift Dev Spaces 컨테이너에 프로비저닝됩니다.
오브젝트가 두 개 이상의 데이터 항목을 제공하는 경우 다음과 같이 각 데이터 키에 대해 환경 변수 이름을 제공해야 합니다.
예 3.12. 예제:
apiVersion: v1 kind: Secret metadata: name: custom-settings annotations: che.eclipse.org/mount-as: env che.eclipse.org/mykey_env-name: FOO_ENV che.eclipse.org/otherkey_env-name: OTHER_ENV labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: devspaces-secret stringData: mykey: <data_content_here> otherkey: <data_content_here>
또는
apiVersion: v1 kind: ConfigMap metadata: name: custom-settings annotations: che.eclipse.org/mount-as: env che.eclipse.org/mykey_env-name: FOO_ENV che.eclipse.org/otherkey_env-name: OTHER_ENV labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: devspaces-configmap data: mykey: <data content here> otherkey: <data content here>
그러면 다음 두 가지 환경 변수가 생성됩니다.
-
FOO_ENV
-
OTHER_ENV
OpenShift Dev Spaces 컨테이너에 프로비저닝됩니다.
OpenShift 오브젝트의 최대 주석 이름의 길이는 63자입니다. 여기서 9 문자는 /
로 끝나는 접두사용으로 예약되어 있습니다. 이는 오브젝트에 사용할 수 있는 최대 키 길이에 대한 제한으로 작동합니다.
OpenShift Dev Spaces 컨테이너를 변경하려면 Secret 또는 ConfigMap 오브젝트를 완전히 다시 생성합니다.
3.3.2. Dev Spaces 서버에 대한 고급 구성 옵션
다음 섹션에서는 OpenShift Dev Spaces 서버 구성 요소의 고급 배포 및 구성 방법에 대해 설명합니다.
3.3.2.1. OpenShift Dev Spaces 서버 고급 구성 이해
다음 섹션에서는 배포에 대한 OpenShift Dev Spaces 서버 구성 요소 고급 구성 요소에 대해 설명합니다.
다음과 같은 고급 구성이 필요합니다.
-
표준
CheCluster
사용자 정의 리소스 필드에서 Operator가 자동으로 생성하지 않은 환경 변수를 추가합니다. -
표준
CheCluster
사용자 정의 리소스 필드에서 Operator가 생성한 속성을 자동으로 재정의합니다.
CheCluster
사용자 정의 리소스 서버 설정의 일부인
구성 요소에 적용할 추가 환경 변수 맵이 포함되어 있습니다.
customCheProperties
필드에는 OpenShift Dev Spaces 서버
예 3.13. 작업 공간의 기본 메모리 제한 덮어쓰기
CheCluster
사용자 정의 리소스를 구성합니다. 3.1.2절. “CLI를 사용하여 CheCluster 사용자 정의 리소스 구성”을 참조하십시오.apiVersion: org.eclipse.che/v2 kind: CheCluster spec: components: cheServer: extraProperties: CHE_LOGS_APPENDERS_IMPL: json
이전 버전의 OpenShift Dev Spaces Operator에는 이 역할을 수행하기 위해 custom
이라는 ConfigMap이 있었습니다. OpenShift Dev Spaces Operator에서 사용자 지정 이름으로 configMap
을 찾으면
필드에 포함된 데이터를 추가하고 OpenShift Dev Spaces를 재배포하고 custom
CheProperties사용자 정의
configMap
을 삭제합니다.