7.2. 동적 플러그인 시작하기

OpenShift Container Platform 웹 콘솔에는 다양한 사용자 정의를 수행할 수 있습니다. 새 OpenShift Console 동적 플러그인을 작성하고 플러그인의 예제 확장 기능으로 Pod 세부 정보 페이지에 탭을 추가하도록 환경을 설정합니다.

참고

OpenShift Container Platform 웹 콘솔은 로그인한 클러스터에 연결된 컨테이너에서 실행됩니다. 직접 만들기 전에 플러그인을 테스트하는 정보는 "Dynamic plugin 실행"을 참조하십시오.

사전 요구 사항

  • Node.js 가 설치되어 있는지 확인합니다.
  • yarn 이 설치되어 있는지 확인하십시오.

절차

  1. 새 탭에서 새 탭에서 플러그인을 생성하는 템플릿이 포함된 console-plugin-template 리포지토리를 엽니다.

    중요

    사용자 정의 플러그인 코드는 Red Hat에서 지원하지 않습니다. 귀하의 플러그인에 협력 커뮤니티 지원 만 사용할 수 있습니다.

  2. Use this template → Create new repository를 클릭하여 템플릿에 대한 GitHub 리포지토리를 생성합니다.
  3. 새 리포지토리의 이름을 플러그인 이름으로 변경합니다.
  4. 코드를 편집할 수 있도록 새 리포지토리를 로컬 시스템에 복제합니다.
  5. consolePlugin 선언에 플러그인 메타데이터를 추가하여 package.json 파일을 편집합니다. 예를 들면 다음과 같습니다.

    "consolePlugin": {
      "name": "my-plugin", 1
      "version": "0.0.1", 2
      "displayName": "My Plugin", 3
      "description": "Enjoy this shiny, new console plugin!", 4
      "exposedModules": {
        "ExamplePage": "./components/ExamplePage"
      },
      "dependencies": {
        "@console/pluginAPI": "/*"
      }
    }
    1
    플러그인 이름을 업데이트합니다.
    2
    버전을 업데이트합니다.
    3
    플러그인의 표시 이름을 업데이트합니다.
    4
    플러그인에 대한 synopsis로 설명을 업데이트합니다.
  6. console-extensions.json 파일에 다음을 추가합니다.

    {
      "type": "console.tab/horizontalNav",
      "properties": {
        "page": {
          "name": "Example Tab",
          "href": "example"
        },
        "model": {
          "group": "core",
          "version": "v1",
          "kind": "Pod"
        },
        "component": { "$codeRef": "ExampleTab" }
      }
    }
  7. 다음 변경 사항을 포함하도록 package.json 파일을 편집합니다.

            "exposedModules": {
                "ExamplePage": "./components/ExamplePage",
                "ExampleTab": "./components/ExampleTab"
            }
  8. 새 파일 Golang /components/libvirtTab.tsx를 생성하고 다음 스크립트를 추가하여 Pod 페이지의 새 사용자 지정 탭에 표시할 메시지를 작성합니다.

    import * as React from 'react';
    
    export default function ExampleTab() {
        return (
            <p>This is a custom tab added to a resource using a dynamic plugin.</p>
        );
    }
  9. 플러그인 이름과 함께 Helm 차트를 새 네임스페이스 또는 -n 명령줄 옵션에 지정된 기존 네임스페이스에 Helm 릴리스 이름으로 설치하여 클러스터에 플러그인을 배포합니다. 다음 명령을 사용하여 plugin.image 매개변수 내에 이미지의 위치를 제공합니다.

    $ helm upgrade -i  my-plugin charts/openshift-console-plugin -n my-plugin-namespace --create-namespace --set plugin.image=my-plugin-image-location
    참고

    클러스터에 플러그인을 배포하는 방법에 대한 자세한 내용은 "클러스터에 플러그인 배포"를 참조하십시오.

검증

  • 추가된 탭을 보려면 Pod 페이지로 이동합니다.