Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

7.4. 플러그인 작성

CLI 명령을 작성할 수 있는 모든 프로그래밍 언어 또는 스크립트로 플러그인을 작성할 수 있습니다. 플러그인이 반드시 바이너리 구성 요소를 보유할 필요는 없습니다. echo,sed 또는 grep 과 같은 운영 체제 유틸리티에 전적으로 의존할 수 있습니다. 또는 oc 바이너리를 사용할 수 있습니다.

oc 플러그인의 유일한 강력한 요구 사항은 plugin.yaml 설명자 파일입니다. 이 파일은 플러그인 등록에 필요한 최소 특성을 선언해야 하며, Search Order 섹션에 지정된 위치 중 하나에 위치해야 합니다.

7.4.1. plugin.yaml Descriptor

설명자 파일은 다음 속성을 지원합니다.

name: "great-plugin"              # REQUIRED: the plug-in command name, to be invoked under 'kubectl'
shortDesc: "great-plugin plug-in" # REQUIRED: the command short description, for help
longDesc: ""                      # the command long description, for help
example: ""                       # command example(s), for help
command: "./example"              # REQUIRED: the command, binary, or script to invoke when running the plug-in
flags:                            # flags supported by the plug-in
  - name: "flag-name"             # REQUIRED for each flag: flag name
    shorthand: "f"                # short version of the flag name
    desc: "example flag"          # REQUIRED for each flag: flag description
    defValue: "extreme"           # default value of the flag
tree:                             # allows the declaration of subcommands
  - ...                           # subcommands support the same set of attributes

앞의 설명자는 -f | --flag-name 이라는 하나의 플래그가 있는 great-plugin 플러그인을 선언합니다. 다음과 같이 호출할 수 있습니다.

$ oc plugin great-plugin -f value

플러그인이 호출되면 설명자 파일과 동일한 디렉터리에 있는 예제 바이너리 또는 스크립트를 호출하여 여러 인수 및 환경 변수를 전달합니다. 액세스 런타임 속성 섹션에서는 example 명령이 플래그 값과 기타 런타임 컨텍스트에 액세스하는 방법을 설명합니다.