7.4.3. 런타임 속성 액세스


대부분의 사용 사례에서 플러그인을 지원하도록 작성한 바이너리 또는 스크립트 파일은 플러그인 프레임워크에서 제공하는 일부 컨텍스트 정보에 액세스할 수 있어야 합니다. 예를 들어 설명자 파일에서 플래그를 선언한 경우 플러그인은 런타임 시 사용자 제공 플래그 값에 액세스할 수 있어야 합니다.

이는 global flags에서도 마찬가지입니다. 플러그인 프레임워크는 이를 수행해야 하므로 플러그인 작성자는 인수 구문 분석에 대해 걱정할 필요가 없습니다. 또한 플러그인과 일반 oc 명령 간의 일관성을 극대화합니다.

플러그인은 환경 변수를 통해 런타임 컨텍스트 속성에 액세스할 수 있습니다. 예를 들어 플래그를 통해 제공되는 값에 액세스하려면 바이너리 또는 스크립트에 대한 적절한 함수 호출을 사용하여 적절한 환경 변수의 값을 찾습니다.

지원되는 환경 변수는 다음과 같습니다.

  • KUBECTL_PLUGINS_CALLER: 현재 명령 호출에 사용된 oc 바이너리의 전체 경로입니다. 플러그인 작성자는 Kubernetes API를 인증하고 액세스하기 위한 논리를 구현할 필요가 없습니다. 대신 이 환경 변수에서 제공하는 값을 사용하여 oc를 호출하고 oc get --raw=/apis 를 사용하여 필요한 정보를 가져올 수 있습니다.
  • KUBECTL_PLUGINS_CURRENT_NAMESPACE:이 호출의 컨텍스트인 현재 네임스페이스입니다. 이는 네임스페이스 작업에서 고려해야 할 실제 네임스페이스입니다. 이는 kubeconfig, --namespace 글로벌 플래그, 환경 변수 등을 통해 제공된 우선 순위 측면에서 이미 처리되었습니다.
  • KUBECTL_PLUGINS_DESCRIPTOR_*: plugin.yaml 설명자에 선언된 모든 속성에 대한 환경 변수 1개 예를 들어 KUBECTL_PLUGINS_DESCRIPTOR_NAME,KUBECTL_PLUGINS_DESCRIPTOR_COMMAND 입니다.
  • KUBECTL_PLUGINS_GLOBAL_FLAG_*: oc 에서 지원하는 모든 글로벌 플래그에 대해 하나의 환경 변수 예를 들어, KUBECTL_PLUGINS_GLOBAL_FLAG_NAMESPACE,KUBECTL_PLUGINS_PLUGINS_LOGLEVEL 입니다.
  • KUBECTL_PLUGINS_LOCAL_FLAG_*: plugin.yaml 설명자에 선언된 모든 로컬 플래그의 환경 변수 1개 예를 들어, 위의 great-plugin 예제의 KUBECTL_PLUGINS_LOCAL_FLAG_HEAT 입니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.