7장. 동적 플러그인

7.1. 동적 플러그인 개요

7.1.1. 동적 플러그인 정보

동적 플러그인은 클러스터의 워크로드로 배포됩니다. 런타임 시 사용자 지정 페이지 및 기타 확장 기능을 콘솔 사용자 인터페이스에 추가할 수 있습니다. ConsolePlugin 사용자 정의 리소스는 콘솔에 플러그인을 등록하고 클러스터 관리자는 console-operator 구성에서 플러그인을 활성화합니다.

7.1.2. 주요 기능

동적 플러그인을 사용하면 OpenShift Container Platform 환경에 대해 다음과 같은 사용자 정의를 수행할 수 있습니다.

  • 사용자 지정 페이지를 추가합니다.
  • 관리자 및 개발자 이외의 화면을 추가합니다.
  • 검색 항목을 추가합니다.
  • 탭과 작업을 리소스 페이지에 추가합니다.

7.1.3. 일반 지침

플러그인을 생성할 때 다음 일반 지침을 따르십시오.

  • Node.jsyarn 은 플러그인을 빌드하고 실행하는 데 필요합니다.
  • 충돌을 방지하려면 CSS 클래스 이름을 플러그인 이름으로 접두사로 지정합니다. 예를 들면 my-plugin__headingmy-plugin_\_icon 입니다.
  • 다른 콘솔 페이지에서 일관된 모양, 느낌 및 동작을 유지합니다.
  • 플러그인을 생성할 때 react-i18next 현지화 지침을 따르십시오. 다음 예제에서와 같이 useTranslation 후크를 사용할 수 있습니다.

    conster Header: React.FC = () => {
      const { t } = useTranslation('plugin__console-demo-plugin');
      return <h1>{t('Hello, World!')}</h1>;
    };
  • 요소 선택기와 같은 플러그인 구성 요소 외부의 DestinationRule에 영향을 줄 수 있는 선택기를 사용하지 마십시오. 이는 API가 아니며 변경될 수 있습니다. 이를 사용하면 플러그인이 손상될 수 있습니다. 플러그인 구성 요소 외부에서 4.6.1에 영향을 줄 수 있는 요소 선택기와 같은 선택기를 사용하지 마십시오.
  • 플러그인 웹 서버에서 제공하는 모든 자산에 대해 Content-Type 응답 헤더를 사용하여 유효한 JavaScript Multipurpose Internet Mail Extension(MIME) 유형을 제공합니다. 각 플러그인 배포에는 지정된 플러그인의 생성된 자산을 호스팅하는 웹 서버가 포함되어야 합니다.

PatternFly 지침

플러그인을 생성할 때 PatternFly 사용에 대한 다음 지침을 따르십시오.

  • PatternFly 구성 요소 및 PatternFly CSS 변수를 사용합니다. 핵심 PatternFly 구성 요소는 SDK를 통해 사용할 수 있습니다. PatternFly 구성 요소 및 변수를 사용하면 플러그인이 향후 콘솔 버전에서 일관성을 유지하는 데 도움이 됩니다.

    • OpenShift Container Platform 버전 4.14 및 이전 버전을 사용하는 경우 Patternfly 4.x를 사용하십시오.
    • OpenShift Container Platform 4.15 이상을 사용하는 경우 Patternfly 5.x를 사용하십시오.
  • PatternFly의 접근성 기본 사항에 따라 플러그인에 액세스할 수 있도록 합니다.
  • Bootstrap 또는 Tailwind와 같은 다른 CSS 라이브러리는 사용하지 마십시오. 이는 PatternFly와 충돌할 수 있으며 콘솔의 모양과 느낌과 일치하지 않습니다. 플러그인은 기본 PatternFly 스타일에서 평가할 사용자 인터페이스에 고유한 스타일만 포함해야 합니다. @patternfly/react-styles/*/.css 또는 플러그인의 @patternfly/patternfly 패키지에서 모든 스타일을 가져오지 않도록 합니다.
  • 콘솔 애플리케이션은 지원되는 모든 PatternFly 버전에 대한 기본 스타일을 로드합니다.