본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

crd2pulumi

0

crd2pulumi는 Pulumi에서 제공하는 CLI 도구로, Kubernetes CustomResourceDefinition(CRD)을 기반으로 타입이 지정된 CustomResources를 생성합니다.

인프라스트럭처 as 코드코드 생성타입 안전

소개

crd2pulumi는 Pulumi에서 제공하는 CLI 도구로, Kubernetes CustomResourceDefinition(CRD)을 기반으로 타입이 지정된 CustomResources를 생성합니다. 이 도구는 개발자가 IDE의 타입 체크 및 자동완성 기능을 활용하여 복잡한 CRD 스키마를 더 쉽게 다룰 수 있도록 도와줍니다. 공식 GitHub 저장소에 따르면, 이 저장소는 더 이상 활발히 업데이트되지 않는 deprecated 상태이며, Pulumi의 Typed CRD Packages 사용을 권장합니다. crd2pulumi는 Apache-2.0 라이선스 하에 배포되며, Pulumi 홈페이지(https://www.pulumi.com/)에서 확인할 수 있습니다.

상세정보

다중 언어 지원

crd2pulumi는 Go, Python, Node.js, .NET, Java 등 다양한 프로그래밍 언어로 타입이 지정된 코드를 생성할 수 있습니다. 각 언어별로 별도의 플래그(-g, -p, -n, -d, -j)를 통해 출력 대상 언어를 지정할 수 있으며, 생성된 코드는 해당 언어의 IDE에서 자동완성 및 타입 체크 기능을 활용할 수 있습니다.

출력 경로 제어

언어별 출력 디렉터리를 지정할 수 있는 –goPath, –pythonPath, –nodejsPath, –dotnetPath, –javaPath 옵션을 제공합니다. 이를 통해 생성된 코드를 원하는 위치에 저장할 수 있으며, 경로를 지정하면 기본 플래그(-g, -p 등)를 사용하지 않아도 됩니다.

강제 덮어쓰기 및 버전 정보

-f 또는 –force 플래그를 사용하면 기존 파일을 강제로 덮어쓸 수 있습니다. 또한 ‘version’ 서브커맨드를 통해 현재 crd2pulumi의 버전 정보를 확인할 수 있으며, 빌드 시 ldflags를 통해 버전을 동적으로 설정할 수 있습니다.

다운로드·설치 방법

개발이 아닌 사용 목적이라면, GitHub 저장소의 [binary releases](https://github.com/pulumi/crd2pulumi/releases)에서 사전 빌드된 바이너리를 다운로드하여 사용할 수 있습니다. macOS 사용자는 Pulumi Homebrew tap을 통해 brew install pulumi/tap/crd2pulumi 명령으로 설치할 수 있습니다. 소스 코드로부터 직접 빌드하려면 Go 환경이 필요하며, go build -ldflags="-X github.com/pulumi/crd2pulumi/gen.Version=dev" -o $GOPATH/bin/crd2pulumi main.go 명령으로 바이너리를 생성할 수 있습니다.

기본 사용법/명령어

crd2pulumi는 기본적으로 crd2pulumi [flags] [crd2.yaml] ... 형식으로 실행됩니다. 주요 플래그는 다음과 같습니다:

  • -d, –dotnet: .NET 코드 생성
  • -g, –go: Go 코드 생성
  • -j, –java: Java 코드 생성
  • -n, –nodejs: Node.js 코드 생성
  • -p, –python: Python 코드 생성
  • -f, –force: 기존 파일 덮어쓰기
  • -h, –help: 도움말 출력
  • version: 버전 정보 출력

언어별 출력 경로를 지정하면 해당 플래그 사용이 불필요해집니다. 예를 들어 --pythonPath ./output를 지정하면 Python 코드가 ./output 디렉터리에 생성됩니다.

이런 경우에 유용합니다

Kubernetes에서 cert-manager나 Istio와 같은 복잡한 CRD를 사용할 때, 수천 줄에 달하는 YAML 스키마를 직접 다루는 대신 crd2pulumi를 통해 타입이 지정된 코드를 생성하면 IDE의 자동완성과 타입 체크를 활용하여 오류를 줄이고 개발 생산성을 높일 수 있습니다. 이는 특히 Pulumi를 사용해 인프라를 코드로 관리하는 개발자에게 유용합니다.

제한 사항·확인 사항

이 저장소는 공식적으로 deprecated 상태이며, 더 이상 활발한 업데이트나 지원이 제공되지 않습니다. Pulumi 측에서는 Typed CRD Packages(https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/typed-customresources-with-provider-extensions/) 사용을 권장하고 있습니다. 따라서 새로운 프로젝트에서는 이 도구 대신 권장되는 대체 방안을 고려해야 합니다.

시스템 요구사항

별도의 시스템 요구사항이 등록되지 않았습니다.