5.2. 프로젝트 구성
각 사용자에 대해 OpenShift Dev Spaces는 프로젝트의 작업 공간을 격리합니다. OpenShift Dev Spaces는 레이블 및 주석이 있는 사용자 프로젝트를 식별합니다. 작업 영역을 시작할 때 필요한 프로젝트가 없는 경우 OpenShift Dev Spaces는 템플릿 이름을 사용하여 프로젝트를 생성합니다.
다음을 통해 OpenShift Dev Spaces 동작을 수정할 수 있습니다.
5.2.1. 프로젝트 이름 구성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dev Spaces에서 작업 공간을 시작할 때 필요한 프로젝트를 생성하는 데 사용하는 프로젝트 이름 템플릿을 구성할 수 있습니다.
유효한 프로젝트 이름 템플릿은 다음과 같은 규칙을 따릅니다.
-
<
;username>
또는 <userid&
gt; 자리 표시자는 필수입니다. -
사용자 이름과 ID에는 잘못된 문자를 포함할 수 없습니다. 사용자 이름 또는 ID 형식이 OpenShift 오브젝트의 이름 지정 규칙과 호환되지 않는 경우 OpenShift Dev Spaces는 호환되지 않는 문자를
-
기호로 교체하여 사용자 이름 또는 ID를 유효한 이름으로 변경합니다. -
OpenShift Dev Spaces는 <
userid
> 자리 표시자를 14자 긴 문자열로 평가하고 ID가 충돌하지 않도록 임의의 6자 길이 접미사를 추가합니다. 결과는 재사용을 위해 사용자 기본 설정에 저장됩니다. - Kubernetes는 프로젝트 이름의 길이를 63자로 제한합니다.
- OpenShift는 길이를 49자로 더 제한합니다.
프로세스
CheCluster
사용자 정의 리소스를 구성합니다. 5.1.2절. “CLI를 사용하여 CheCluster 사용자 정의 리소스 구성”을 참조하십시오.spec: components: devEnvironments: defaultNamespace: template: <workspace_namespace_template_>
spec: components: devEnvironments: defaultNamespace: template: <workspace_namespace_template_>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예 5.3. 사용자 작업 공간 프로젝트 이름 템플릿 예
Expand 사용자 작업 공간 프로젝트 이름 템플릿 결과 프로젝트 예 <username>-devspaces
(기본값)user1-devspaces
<userid>-namespace
cge1egvsb2nhba-namespace-ul1411
<userid>-aka-<username>-namespace
cgezegvsb2nhba-aka-user1-namespace-6m2w2b
5.2.2. 사전 프로비저닝 프로젝트 링크 복사링크가 클립보드에 복사되었습니다!
자동 프로비저닝을 사용하는 대신 작업 공간 프로젝트를 사전에 프로비저닝할 수 있습니다. 각 사용자에 대해 절차를 반복합니다.
프로세스
CheCluster
수준에서 자동 네임스페이스 프로비저닝을 비활성화합니다.devEnvironments: defaultNamespace: autoProvision: false
devEnvironments: defaultNamespace: autoProvision: false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 라벨 및 주석을 사용하여 < username > 사용자에 대한 <project_name > 프로젝트를 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 선택한 프로젝트 이름을 사용합니다.
5.2.3. 사용자 네임스페이스 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 절차에서는 OpenShift Dev Spaces를 사용하여 ConfigMaps
,Secrets
,PersistentVolumeClaim
및 기타 Kubernetes 오브젝트를 openshift-devspaces
네임스페이스에서 다양한 사용자별 네임스페이스로 복제하는 프로세스를 안내합니다. OpenShift Dev Spaces는 사용자 네임스페이스에 대한 공유 자격 증명, 구성 파일 및 인증서와 같은 중요한 구성 데이터의 동기화를 자동화합니다.
openshift-devspaces 네임스페이스에서 Kubernetes 리소스를 변경하면 OpenShift Dev Spaces가 모든 사용자 네임스페이스에서 변경 사항을 즉시 복제합니다. 반대로 Kubernetes 리소스가 사용자 네임스페이스에서 수정되면 OpenShift Dev Spaces가 변경 사항을 즉시 되돌립니다.
프로세스
아래
ConfigMap
을 생성하여 모든 사용자 프로젝트에 복제합니다. 구성 가능성을 개선하기 위해 추가 라벨 및 주석을 추가하여ConfigMap
을 사용자 지정할 수 있습니다. 기본적으로 ConfigMap은 사용자 작업 공간에 자동으로 마운트됩니다. ConfigMap을 마운트하지 않으려면 명시적으로 다음 라벨을 추가하여 동작을 재정의합니다.controller.devfile.io/watch-configmap: "false" controller.devfile.io/mount-to-devworkspace: "false"
controller.devfile.io/watch-configmap: "false" controller.devfile.io/mount-to-devworkspace: "false"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기타 가능한 라벨 및 주석은 자동 마운트 볼륨, configmaps 및 시크릿 을 참조하십시오.
예 5.4. 모든 사용자 프로젝트에 ConfigMap을 복제합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예 5.5. ConfigMap을 모든 사용자 프로젝트에 복제하고
/home/user/.m2
경로를 통해 모든 사용자 컨테이너에settings.xml
파일을 자동으로 마운트합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 아래
시크릿
을 생성하여 모든 사용자 프로젝트에 복제합니다. 구성 가능성을 개선하기 위해 추가 라벨 및 주석을 추가하여보안
을 사용자 지정할 수 있습니다. 기본적으로 보안은 사용자 작업 공간에 자동으로 마운트됩니다. 보안을 마운트하지 않으려면 다음 라벨을 명시적으로 추가하여 동작을 재정의합니다.controller.devfile.io/watch-secret: "false" controller.devfile.io/mount-to-devworkspace: "false"
controller.devfile.io/watch-secret: "false" controller.devfile.io/mount-to-devworkspace: "false"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기타 가능한 라벨 및 주석은 자동 마운트 볼륨, configmaps 및 시크릿 을 참조하십시오.
예 5.6. 모든 사용자 프로젝트에 보안을 복제합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예 5.7. 보안을 모든 사용자 프로젝트에 복제하고
/etc/pki/ca-trust/source/anchors
를 통해trusted-certificates.crt
파일을 모든 사용자 컨테이너에 자동으로 마운트합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고작업 영역 시작 시
update-ca-trust
명령을 실행하여 인증서를 가져옵니다. 수동으로 또는 devfile의postStart
이벤트에 이 명령을 추가하여 수행할 수 있습니다. devfile의 이벤트 바인딩 추가를 참조하십시오.예 5.8. 모든 사용자 프로젝트에 보안을 복제하고 모든 사용자 컨테이너에 환경 변수로 자동으로 마운트합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 아래
PersistentVolumeClaim
을 생성하여 모든 사용자 프로젝트에 복제합니다.구성 가능성을 개선하기 위해 추가 라벨 및 주석을 추가하여
PersistentVolumeClaim
을 사용자 지정할 수 있습니다. 기타 가능한 라벨 및 주석은 자동 마운트 볼륨, configmaps 및 시크릿 을 참조하십시오.PersistentVolumeClaim
을 수정하려면 openshift-devspaces 네임스페이스에 새VolumeClaim을 삭제하고 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예 5.9. 사용자 작업 공간에
PersistentVolumeClaim
마운트:Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Kubernetes Engine을 활용하려면
템플릿
오브젝트를 생성하여 각 사용자 프로젝트에서 템플릿에 정의된 모든 리소스를 복제할 수 있습니다.이전에 언급한
ConfigMap
,Secret
,PersistentVolumeClaim
외에도Template
오브젝트에는 다음이 포함될 수 있습니다.-
LimitRange
-
NetworkPolicy
-
resourceQuota
-
Role
RoleBinding
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 매개변수는
선택 사항이며 사용할 수 있는 매개변수를 정의합니다. 현재PROJECT_NAME
및PROJECT_ADMIN_USER
만 지원됩니다.PROJECT_NAME
은 OpenShift Dev Spaces 네임스페이스의 이름이며PROJECT_ADMIN_USER
는 네임스페이스의 OpenShift Dev Spaces 사용자입니다.오브젝트의 네임스페이스 이름은 동기화 중에 사용자의 네임스페이스 이름으로 교체됩니다.
예 5.10. 사용자 프로젝트에 Kubernetes 리소스를 복제합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고템플릿 Kubernetes 리소스 생성은 OpenShift에서만 지원됩니다.
-
추가 리소스
- https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.23/html-single/user_guide/index#end-user-guide:mounting-configmaps
- https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.23/html-single/user_guide/index#end-user-guide:mounting-secrets
- https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.23/html-single/user_guide/index#end-user-guide:requesting-persistent-storage-for-workspaces
- 볼륨, configmaps 및 secret 자동 마운트
-
템플릿에
대한 OpenShift API 참조 - OpenShift 프로젝트 생성 구성