6장. ConsolePlugin [console.openshift.io/v1]
- 설명
ConsolePlugin은 클러스터에서 실행되는 다른 서비스에서 코드를 동적으로 로드하여 OpenShift 웹 콘솔을 사용자 정의하는 확장 프로그램입니다.
호환성 수준 1: 최소 12 개월 또는 3 개의 마이너 릴리스 (더 긴 버전) 동안 주요 릴리스 내에서 사용할 수 있습니다.
- 유형
-
object
- 필수 항목
-
메타데이터
-
spec
-
6.1. 사양 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 유형 | 설명 |
---|---|---|
|
| APIVersion은 버전이 지정된 이 오브젝트 표현의 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않는 값을 거부할 수 있습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind는 이 오브젝트가 나타내는 REST 리소스에 해당하는 문자열 값입니다. 서버는 클라이언트에서 요청을 제출한 끝점에서 이를 유추할 수 있습니다. CamelCase로 업데이트할 수 없습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 표준 오브젝트의 메타데이터입니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| spec에는 콘솔 플러그인에 필요한 구성이 포함되어 있습니다. |
6.1.1. .spec 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- spec에는 콘솔 플러그인에 필요한 구성이 포함되어 있습니다.
- 유형
-
object
- 필수 항목
-
백엔드
-
displayName
-
속성 | 유형 | 설명 |
---|---|---|
|
| 백엔드에는 콘솔의 플러그인을 제공하는 백엔드 구성이 있습니다. |
|
| contentSecurityPolicy는 플러그인에 대한 CSP(Content-Security-Policy) 지침 목록입니다. 각 지시문은 해당 지시문 유형에 적합한 값 목록을 지정합니다. 예를 들어 ScriptSrc와 같은 페치 지시문의 경우 원격 엔드포인트 목록이 있습니다. 콘솔 웹 애플리케이션은 CSP를 사용하여 XSS(교차 사이트 스크립팅) 및 데이터 주입 공격과 같은 특정 유형의 공격을 탐지하고 완화합니다. 동적 플러그인은 클러스터 외부에서 자산을 로드해야 하거나 위반 보고서가 관찰되는 경우 이 필드를 지정해야 합니다. 동적 플러그인은 벤더링을 통해 또는 클러스터 서비스에서 가져와서 클러스터 내에서 자산을 로드하는 것을 항상 선호합니다. CSP 위반 보고서는 OpenShift 웹 콘솔에서 플러그인을 개발하고 테스트하는 동안 브라우저의 콘솔 로그에서 볼 수 있습니다. 사용 가능한 지시문 유형은 DefaultSrc, ScriptSrc, StyleSrc, ImgSrc, FontSrc 및 ConnectSrc입니다. 사용 가능한 각 지침은 목록에서 한 번만 정의될 수 있습니다. 값 'self'는 OpenShift 웹 콘솔 백엔드에서 모든 fetch 지시문에 자동으로 포함됩니다. CSP 지침에 대한 자세한 내용은 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy를 참조하세요.
OpenShift 웹 콘솔 서버는 자체 기본값과 활성화된 모든 ConsolePlugin CR에 걸쳐 CSP 지침과 값을 집계하여 예: ConsolePlugin A 지시문: script-src: https://script1.com/ , https://script2.com/ font-src: https://font1.com/ ConsolePlugin B 지침: script-src: https://script2.com/ , https://script3.com/ font-src: https://font2.com/ img-src: https://img1.com/ OpenShift 웹 콘솔 서버로 전달되는 통합된 CSP 지침 세트: script-src: https://script1.com/ , https://script2.com/ , https://script3.com/ font-src: https://font1.com/ , https://font2.com/ img-src: https://img1.com/ OpenShift 웹 콘솔 서버 CSP 응답 헤더: Content-Security-Policy: default-src 'self'; base-uri 'self'; script-src 'self' https://script1.com/ https://script2.com/ https://script3.com/ ; font-src 'self' https://font1.com/ https://font2.com/ ; img-src 'self' https://img1.com/ ; style-src 'self'; frame-src 'none'; object-src 'none' |
|
| ConsolePluginCSP는 특정 CSP 지시문에 대한 구성을 보관합니다. |
|
| displayName은 플러그인의 표시 이름입니다. dispalyName은 1~128자 사이여야 합니다. |
|
| i18n은 플러그인의 현지화 리소스의 구성입니다. |
|
| proxy는 플러그인이 연결해야 하는 다양한 서비스 유형을 설명하는 프록시 목록입니다. |
|
| ConsolePluginProxy는 콘솔의 백엔드가 플러그인의 요청을 프록시하는 다양한 서비스 유형에 대한 정보를 보유합니다. |
6.1.2. .spec.backend 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- 백엔드에는 콘솔의 플러그인을 제공하는 백엔드 구성이 있습니다.
- 유형
-
object
- 필수 항목
-
type
-
속성 | 유형 | 설명 |
---|---|---|
|
| 서비스는 HTTP 서버와의 배포를 사용하여 플러그인을 노출하는 Kubernetes 서비스입니다. 서비스는 HTTPS 및 서비스 제공 인증서를 사용해야 합니다. 콘솔 백엔드는 서비스 CA 번들을 사용하여 서비스에서 플러그인 자산을 프록시합니다. |
|
| type은 콘솔의 플러그인에 있는 서버의 백엔드 유형입니다. 현재 "서비스"만 지원됩니다. |
6.1.3. .spec.backend.service 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- 서비스는 HTTP 서버와의 배포를 사용하여 플러그인을 노출하는 Kubernetes 서비스입니다. 서비스는 HTTPS 및 서비스 제공 인증서를 사용해야 합니다. 콘솔 백엔드는 서비스 CA 번들을 사용하여 서비스에서 플러그인 자산을 프록시합니다.
- 유형
-
object
- 필수 항목
-
name
-
네임스페이스
-
port
-
속성 | 유형 | 설명 |
---|---|---|
|
|
basePath는 플러그인 자산의 경로입니다. 주요 자산은 플러그인 및 확장에 대한 메타데이터가 포함된 JSON 문서인 |
|
| 플러그인 자산을 제공하는 서비스 이름입니다. |
|
| 플러그인 자산을 제공하는 서비스의 네임스페이스입니다. |
|
| 플러그인을 제공하는 서비스가 수신 대기하는 포트입니다. |
6.1.4. .spec.contentSecurityPolicy 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
contentSecurityPolicy는 플러그인에 대한 CSP(Content-Security-Policy) 지침 목록입니다. 각 지시문은 해당 지시문 유형에 적합한 값 목록을 지정합니다. 예를 들어 ScriptSrc와 같은 페치 지시문의 경우 원격 엔드포인트 목록이 있습니다. 콘솔 웹 애플리케이션은 CSP를 사용하여 XSS(교차 사이트 스크립팅) 및 데이터 주입 공격과 같은 특정 유형의 공격을 탐지하고 완화합니다. 동적 플러그인은 클러스터 외부에서 자산을 로드해야 하거나 위반 보고서가 관찰되는 경우 이 필드를 지정해야 합니다. 동적 플러그인은 벤더링을 통해 또는 클러스터 서비스에서 가져와서 클러스터 내에서 자산을 로드하는 것을 항상 선호합니다. CSP 위반 보고서는 OpenShift 웹 콘솔에서 플러그인을 개발하고 테스트하는 동안 브라우저의 콘솔 로그에서 볼 수 있습니다. 사용 가능한 지시문 유형은 DefaultSrc, ScriptSrc, StyleSrc, ImgSrc, FontSrc 및 ConnectSrc입니다. 사용 가능한 각 지침은 목록에서 한 번만 정의될 수 있습니다. 값 'self'는 OpenShift 웹 콘솔 백엔드에서 모든 fetch 지시문에 자동으로 포함됩니다. CSP 지침에 대한 자세한 내용은 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy를 참조하세요.
OpenShift 웹 콘솔 서버는 자체 기본값과 활성화된 모든 ConsolePlugin CR에 걸쳐 CSP 지침과 값을 집계하여
Content-Security-Policy
HTTP 응답 헤더를 통해 브라우저로 전송되는 단일 정책 문자열로 병합합니다.예: ConsolePlugin A 지시문: script-src: https://script1.com/ , https://script2.com/ font-src: https://font1.com/
ConsolePlugin B directives: script-src: https://script2.com/, https://script3.com/ font-src: https://font2.com/ img-src: https://img1.com/
ConsolePlugin B directives: script-src: https://script2.com/, https://script3.com/ font-src: https://font2.com/ img-src: https://img1.com/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Unified set of CSP directives, passed to the OpenShift web console server: script-src: https://script1.com/, https://script2.com/, https://script3.com/ font-src: https://font1.com/, https://font2.com/ img-src: https://img1.com/
Unified set of CSP directives, passed to the OpenShift web console server: script-src: https://script1.com/, https://script2.com/, https://script3.com/ font-src: https://font1.com/, https://font2.com/ img-src: https://img1.com/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift web console server CSP response header: Content-Security-Policy: default-src 'self'; base-uri 'self'; script-src 'self' https://script1.com/ https://script2.com/ https://script3.com/; font-src 'self' https://font1.com/ https://font2.com/; img-src 'self' https://img1.com/; style-src 'self'; frame-src 'none'; object-src 'none'
OpenShift web console server CSP response header: Content-Security-Policy: default-src 'self'; base-uri 'self'; script-src 'self' https://script1.com/ https://script2.com/ https://script3.com/; font-src 'self' https://font1.com/ https://font2.com/; img-src 'self' https://img1.com/; style-src 'self'; frame-src 'none'; object-src 'none'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 유형
-
array
6.1.5. .spec.contentSecurityPolicy[] 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- ConsolePluginCSP는 특정 CSP 지시문에 대한 구성을 보관합니다.
- 유형
-
object
- 필수 항목
-
지령
-
값
-
속성 | 유형 | 설명 |
---|---|---|
|
| 지시문은 구성할 Content-Security-Policy 지시문을 지정합니다. 사용 가능한 지시문 유형은 DefaultSrc, ScriptSrc, StyleSrc, ImgSrc, FontSrc 및 ConnectSrc입니다. DefaultSrc 지시문은 다른 CSP 페치 지시문에 대한 대체 수단으로 사용됩니다. DefaultSrc 지시문에 대한 자세한 내용은 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src를 참조하세요. ScriptSrc 지시문은 JavaScript에 대한 유효한 소스를 지정합니다. ScriptSrc 지시어에 대한 자세한 내용은 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src를 참조하세요. StyleSrc 지시어는 스타일시트에 대한 유효한 소스를 지정합니다. StyleSrc 지시어에 대한 자세한 내용은 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src를 참조하세요. ImgSrc 지시어는 유효한 이미지 및 파비콘 소스를 지정합니다. ImgSrc 지시어에 대한 자세한 내용은 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src를 참조하세요. FontSrc 지시어는 @font-face를 사용하여 로드된 글꼴에 대한 유효한 소스를 지정합니다. FontSrc 지시문에 대한 자세한 내용은 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src를 참조하세요. ConnectSrc 지시문은 스크립트 인터페이스를 사용하여 로드할 수 있는 URL을 제한합니다. ConnectSrc 지시문에 대한 자세한 내용은 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src를 참조하세요. |
|
| values는 이 지시어에 대한 콘솔 기본값에 추가할 값의 배열을 정의합니다. 각 ConsolePlugin은 해당 값으로 자체 지침을 정의할 수 있습니다. 이러한 설정은 OpenShift 웹 콘솔 백엔드의 Content-Security-Policy 헤더의 일부로 설정됩니다. 배열은 최대 16개의 값을 포함할 수 있습니다. 각 지시어 값은 최대 1024자여야 하며 공백, 쉼표(,), 세미콜론(;), 작은따옴표(')를 포함할 수 없습니다. 값 '*'는 허용되지 않습니다. 배열의 각 값은 고유해야 합니다. |
6.1.6. .spec.i18n 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- i18n은 플러그인의 현지화 리소스의 구성입니다.
- 유형
-
object
- 필수 항목
-
loadType
-
속성 | 유형 | 설명 |
---|---|---|
|
| loadType은 플러그인의 로컬라이제이션 리소스를 로드하는 방법을 나타냅니다. 유효한 값은 Preload, Lazy 및 빈 문자열입니다. Preload로 설정하면 플러그인이 로드될 때 모든 로컬라이제이션 리소스를 가져옵니다. Lazy로 설정하면 현지화 리소스가 콘솔에 필요한 대로 로드됩니다. 생략하거나 빈 문자열로 설정하면 동작은 Lazy 유형과 동일합니다. |
6.1.7. .spec.proxy 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- proxy는 플러그인이 연결해야 하는 다양한 서비스 유형을 설명하는 프록시 목록입니다.
- 유형
-
array
6.1.8. .spec.proxy[] 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- ConsolePluginProxy는 콘솔의 백엔드가 플러그인의 요청을 프록시하는 다양한 서비스 유형에 대한 정보를 보유합니다.
- 유형
-
object
- 필수 항목
-
별칭
-
endpoint
-
속성 | 유형 | 설명 |
---|---|---|
|
| alias는 플러그인의 프록시를 식별하는 프록시 이름입니다. 별칭 이름은 플러그인당 고유해야 합니다. 콘솔 백엔드는 다음 프록시 끝점을 노출합니다. /api/proxy/plugin/<plugin-name>/<proxy-alias>/<request-path>?<optional-query-parameters> 요청 예 경로: /api/proxy/plugin/acm/search/pods?namespace=openshift-apiserver |
|
| 권한 부여는 프록시 요청이 포함되어야 하는 권한 부여 유형에 대한 정보를 제공합니다. |
|
| caCertificate는 프록시 서비스에서 사용자 정의 서비스 CA를 사용하는 경우 인증 기관 인증서 콘텐츠를 제공합니다. 기본적으로 service-ca Operator에서 제공하는 서비스 CA 번들이 사용됩니다. |
|
| 엔드포인트는 요청이 프록시되는 끝점에 대한 정보를 제공합니다. |
6.1.9. .spec.proxy[].endpoint 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- 엔드포인트는 요청이 프록시되는 끝점에 대한 정보를 제공합니다.
- 유형
-
object
- 필수 항목
-
type
-
속성 | 유형 | 설명 |
---|---|---|
|
| 서비스는 플러그인이 연결할 클러스터 내 서비스입니다. 서비스는 HTTPS를 사용해야 합니다. 콘솔 백엔드는 플러그인과 서비스 간의 통신을 프록시하기 위해 끝점을 노출합니다. 참고: 현재 "Service" 유형만 지원되므로 현재 service 필드가 필요합니다. |
|
| type은 콘솔 플러그인의 프록시 유형입니다. 현재 "서비스"만 지원됩니다. |
6.1.10. .spec.proxy[].endpoint.service 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- 서비스는 플러그인이 연결할 클러스터 내 서비스입니다. 서비스는 HTTPS를 사용해야 합니다. 콘솔 백엔드는 플러그인과 서비스 간의 통신을 프록시하기 위해 끝점을 노출합니다. 참고: 현재 "Service" 유형만 지원되므로 현재 service 필드가 필요합니다.
- 유형
-
object
- 필수 항목
-
name
-
네임스페이스
-
port
-
속성 | 유형 | 설명 |
---|---|---|
|
| 플러그인에 연결해야 하는 서비스 이름입니다. |
|
| 플러그인이 연결해야 하는 서비스의 네임스페이스 |
|
| 플러그인이 연결해야 하는 서비스가 수신 대기 중인 포트입니다. |