첫 번째 Helm 플러그인을 만드는 방법은 무엇입니까?

지배



Helm은 helm 차트를 사용하여 Kubernetes 애플리케이션을 관리하는 데 도움이 됩니다. Helm 차트는 Kubernetes 애플리케이션을 정의, 설치 및 업그레이드하는 데 도움이 됩니다.

예시:

# add chart repository
helm repo add bitnami https://charts.bitnami.com/bitnami

# update charts
helm repo update

# install mysql using helm chart by bitnami
helm install bitnami/mysql --generate-name


헬름 플러그인



Helm 플러그인은 helm 코어 코드베이스를 수정하지 않고 Helm 기능을 확장하는 방법을 제공합니다.

Helm 플러그인에는 다음과 같은 기능이 있습니다.
  • 핵심 Helm 도구에 영향을 주지 않고 Helm 설치에서 추가 및 제거할 수 있습니다.
  • 모든 프로그래밍 언어로 작성할 수 있습니다.
  • Helm과 통합되며 helm 도움말 및 기타 위치에 표시됩니다.

  • Helm 플러그인은 $HELM_PLUGINS 디렉토리에 저장되며 helm env 명령을 사용하여 이를 변경할 수 있습니다.

    helm 플러그인 설치



    Helm 플러그인은 git repo, tar 릴리스 또는 로컬 디렉토리에서 설치할 수 있습니다.

    helm plugin install <path|url>
    


    Helm 플러그인 구조



    helm 플러그인은 플러그인 정의 및 관련 명령이 있는 plugin.yaml 파일로 구성됩니다.

    ─ fullenv
       ├── plugin.yaml
       └── run.sh
    


    플러그인 정의



    plugin.yaml은 호출 시 실행할 이름, 사용법, 설명 및 명령을 정의합니다.
  • Command는 모든 프로그래밍 언어의 스크립트를 가리킬 수 있습니다.
  • ignoreFlags 스위치는 플러그인에 플래그를 전달하지 않도록 Helm에 지시합니다.

  • 따라서 플러그인이 helm myplugin --foo 및 ignoreFlags: true로 호출되면 --foo는 자동으로 삭제됩니다.

    플러그인.yaml

    name: fullenv
    usage: "show env vars"
    description: "show all env vars"
    command: "$HELM_PLUGIN_DIR/run.sh"
    ignoreFlags: true
    


    run.sh - helm 환경 변수만 출력합니다.

    #!/bin/sh
    echo $HELM_PLUGIN_NAME
    echo $HELM_PLUGIN_DIR
    echo $HELM_PLUGINS
    echo $HELM_REPOSITORY_CONFIG
    echo $HELM_REPOSITORY_CACHE
    echo $HELM_BIN
    


    플랫폼별 명령



    OS 플랫폼 및 아키텍처를 대상으로 하도록 Helm 플러그인 명령을 구성할 수 있습니다.

    name: fullenv
    usage: "show env vars"
    description: "show all env vars"
    command: "$HELM_PLUGIN_DIR/run.sh"
    platformCommand:
      - os: linux
        arch: i386
        command: "$HELM_PLUGIN_DIR/run.sh"
      - os: linux
        arch: amd64
        command: "$HELM_PLUGIN_DIR/run.sh"
    
    


    Helm은 아래 규칙에 따라 명령을 선택합니다.
  • platformCommand가 있으면 먼저 검색됩니다.
  • osarch가 모두 현재 플랫폼과 일치하면 검색이 중지되고 명령이 사용됩니다.
  • os가 일치하고 더 이상 구체적인 arch 일치 항목이 없으면 명령이 사용됩니다.
  • 일치하는 항목platformCommand이 없으면 기본값command이 사용됩니다.
  • platformCommand에서 일치하는 항목이 없고 command가 없으면 Helm이 오류와 함께 종료됩니다.

  • 플러그인 설치



    플러그인 디렉토리로 이동한 다음 아래 명령을 실행합니다.

    # install
    helm plugin install .
    
    # check if the installation is successful
    helm plugin list
    


    플러그인 테스트




    helm fullenv
    


    If you like this article, subscribe to the newsletter and Connect with me on to get updates on my future articles. ✅

    좋은 웹페이지 즐겨찾기