9.2. Operator SDK CLI 참조
Operator SDK CLI(명령줄 인터페이스)는 Operator를 더 쉽게 작성할 수 있도록 설계된 개발 키트입니다.
Operator 프로젝트의 관련 스캐폴딩 및 테스트 툴을 포함한 Red Hat 지원 버전의 Operator SDK CLI 툴은 더 이상 사용되지 않으며 향후 OpenShift Container Platform 릴리스에서 제거될 예정입니다. Red Hat은 현재 릴리스 라이프사이클 동안 이 기능에 대한 버그 수정 및 지원을 제공하지만 이 기능은 더 이상 개선 사항을 받지 않으며 향후 OpenShift Container Platform 릴리스에서 제거됩니다.
새 Operator 프로젝트를 생성하는 데 Red Hat 지원 버전의 Operator SDK는 권장되지 않습니다. 기존 Operator 프로젝트가 있는 Operator 작성자는 OpenShift Container Platform 4.17과 함께 릴리스된 Operator SDK CLI 툴 버전을 사용하여 프로젝트를 유지 관리하고 최신 버전의 OpenShift Container Platform을 대상으로 하는 Operator 릴리스를 생성할 수 있습니다.
Operator 프로젝트의 다음과 같은 관련 기본 이미지는 더 이상 사용되지 않습니다. 이러한 기본 이미지의 런타임 기능 및 구성 API는 버그 수정 및 CVE 문제를 해결하는 데 계속 지원됩니다.
- Ansible 기반 Operator 프로젝트의 기본 이미지
- Helm 기반 Operator 프로젝트의 기본 이미지
OpenShift Container Platform에서 더 이상 사용되지 않거나 삭제된 주요 기능의 최신 목록은 OpenShift Container Platform 릴리스 노트에서 더 이상 사용되지 않고 삭제된 기능 섹션을 참조하십시오.
지원되지 않는 커뮤니티 유지 관리 버전에 대한 자세한 내용은 Operator SDK(Operator Framework) 를 참조하십시오.
Operator SDK CLI 구문
$ operator-sdk <command> [<subcommand>] [<argument>] [<flags>]
Operator SDK에 대한 전체 문서는 Operator 개발에서 참조하십시오.
9.2.1. bundle
operator-sdk bundle
명령은 Operator 번들 메타데이터를 관리합니다.
9.2.1.1. 검증
bundle validate
하위 명령은 Operator 번들을 검증합니다.
플래그 | Description |
---|---|
|
|
|
번들 이미지를 가져오고 압축 해제하는 툴입니다. 번들 이미지를 검증할 때만 사용됩니다. 사용 가능한 옵션은 |
| 사용 가능한 선택적 검증기를 모두 나열합니다. 이 플래그를 설정하면 검증기가 실행되지 않습니다. |
|
실행할 선택적 검증기를 선택하는 라벨 선택기입니다. |
9.2.2. cleanup
operator-sdk cleanup
명령은 run
명령을 사용하여 배포한 Operator용으로 생성된 리소스를 삭제하고 제거합니다.
플래그 | Description |
---|---|
|
|
|
CLI 요청에 사용할 |
| 이 플래그가 있는 경우 CLI 요청을 실행할 네임스페이스입니다. |
|
실패 전 명령이 완료될 때까지 대기하는 시간입니다. 기본값은 |
9.2.3. 완료
operator-sdk completion
명령은 CLI 명령을 더 신속하고 쉽게 실행할 수 있도록 쉘 완료를 생성합니다.
하위 명령 | Description |
---|---|
| bash 완료를 생성합니다. |
| zsh 완료를 생성합니다. |
플래그 | Description |
---|---|
| 사용법 도움말 출력입니다. |
예를 들면 다음과 같습니다.
$ operator-sdk completion bash
출력 예
# bash completion for operator-sdk -*- shell-script -*- ... # ex: ts=4 sw=4 et filetype=sh
9.2.4. create
operator-sdk create
명령은 Kubernetes API를 생성하거나 스캐폴드하는 데 사용됩니다.
9.2.4.1. api
create api
하위 명령은 Kubernetes API를 스캐폴드합니다. 하위 명령은 init
명령을 사용하여 초기화한 프로젝트에서 실행해야 합니다.
플래그 | Description |
---|---|
|
|
9.2.5. generate
operator-sdk generate
명령은 특정 생성기를 호출하여 코드 또는 매니페스트를 생성합니다.
9.2.5.1. 번들
generate bundle
하위 명령은 Operator 프로젝트에 대해 일련의 번들 매니페스트, 메타데이터, bundle.Dockerfile
파일을 생성합니다.
일반적으로 generate kustomize manifests
하위 명령을 먼저 실행하여 generate bundle
하위 명령에 사용되는 입력 Kustomize 베이스를 생성합니다. 그러나 초기화된 프로젝트에서 make bundle
명령을 사용하여 이러한 명령을 순서대로 실행하도록 자동화할 수 있습니다.
플래그 | Description |
---|---|
|
번들이 속한 채널의 쉼표로 구분된 목록입니다. 기본값은 |
|
|
| 번들의 기본 채널입니다. |
|
배포 및 RBAC와 같은 Operator 매니페스트용 루트 디렉터리입니다. 이 디렉터리는 |
|
|
|
기존 번들을 읽을 디렉터리입니다. 이 디렉터리는 번들 |
|
번들 매니페스트용 Kustomize 베이스 및 |
| 번들 매니페스트를 생성합니다. |
| 번들 메타데이터 및 Dockerfile을 생성합니다. |
| 번들을 작성할 디렉터리입니다. |
|
번들 메타데이터 및 Dockerfile이 있는 경우 덮어씁니다. 기본값은 |
| 번들의 패키지 이름입니다. |
| 자동 모드로 실행됩니다. |
| 번들 매니페스트를 표준 출력에 작성합니다. |
| 생성된 번들에 있는 Operator의 의미 체계 버전입니다. 새 번들을 생성하거나 Operator를 업그레이드하는 경우에만 설정됩니다. |
추가 리소스
-
make bundle
명령을 사용하여generate bundle
하위 명령을 호출하는 데 포함된 전체 프로시저는 Operator 번들링 및 Operator Lifecycle Manager를 사용한 배포를 참조하십시오.
9.2.5.2. kustomize
generate kustomize
하위 명령에는 Operator에 대한 Kustomize 데이터를 생성하는 하위 명령이 포함되어 있습니다.
9.2.5.2.1. 매니페스트
generate kustomize manifests
하위 명령은 다른 Operator SDK 명령에서 번들 매니페스트를 빌드하는 데 사용하는 Kustomize 베이스 및 kustomization.yaml
파일을 config/manifests
디렉터리에 생성하거나 다시 생성합니다. 베이스가 존재하지 않거나 --interactive=false
플래그를 설정하지 않은 경우 이 명령은 기본적으로 매니페스트 베이스의 중요한 구성 요소인 UI 메타데이터를 대화형으로 요청합니다.
플래그 | Description |
---|---|
| API 유형 정의를 위한 루트 디렉터리입니다. |
|
|
| 기존 Kustomize 파일이 있는 디렉터리입니다. |
|
|
| Kustomize 파일을 작성할 디렉터리입니다. |
| 패키지 이름입니다. |
| 자동 모드로 실행됩니다. |
9.2.6. init
operator-sdk init
명령은 Operator 프로젝트를 초기화하고 지정된 플러그인의 기본 프로젝트 디렉터리 레이아웃을 생성하거나 스캐폴드합니다.
이 명령은 다음 파일을 작성합니다.
- 상용구 라이센스 파일
-
도메인 및 리포지토리가 있는
PROJECT
파일 -
프로젝트를 빌드할
Makefile
-
프로젝트 종속 항목이 있는
go.mod
파일 -
매니페스트를 사용자 정의하는
kustomization.yaml
파일 - 관리자 매니페스트용 이미지를 사용자 정의하는 패치 파일
- Prometheus 지표를 활성화하는 패치 파일
-
실행할
main.go
파일
플래그 | Description |
---|---|
|
|
|
프로젝트를 초기화할 플러그인의 이름 및 버전(선택 사항)입니다. 사용 가능한 플러그인은 |
|
프로젝트 버전입니다. 사용 가능한 값은 |
9.2.7. run
operator-sdk run
명령은 다양한 환경에서 Operator를 시작할 수 있는 옵션을 제공합니다.
9.2.7.1. 번들
run bundle
하위 명령은 OLM(Operator Lifecycle Manager)을 사용하여 번들 형식으로 Operator를 배포합니다.
플래그 | Description |
---|---|
|
번들을 삽입할 인덱스 이미지입니다. 기본 이미지는 |
|
Operator CSV(클러스터 서비스 버전)에서 지원되는 설치 모드(예: |
|
설치 제한 시간입니다. 기본값은 |
|
CLI 요청에 사용할 |
| 이 플래그가 있는 경우 CLI 요청을 실행할 네임스페이스입니다. |
|
카탈로그 Pod에 사용할 보안 컨텍스트를 지정합니다. 허용되는 값에는 |
|
|
-
restricted
보안 컨텍스트는default
네임스페이스와 호환되지 않습니다. 프로덕션 환경에서 Operator의 Pod 보안 승인을 구성하려면 "Pod 보안 승인 관련"을 참조하십시오. Pod 보안 승인에 대한 자세한 내용은 "Pod 보안 승인 이해 및 관리"를 참조하십시오.
추가 리소스
- 가능한 설치 모드에 대한 자세한 내용은 Operator group 멤버십 을 참조하십시오.
9.2.7.2. bundle-upgrade
run bundle-upgrade
하위 명령은 이전에 OLM(Operator Lifecycle Manager)을 사용하여 번들 형식으로 설치한 Operator를 업그레이드합니다.
플래그 | Description |
---|---|
|
업그레이드 제한 시간입니다. 기본값은 |
|
CLI 요청에 사용할 |
| 이 플래그가 있는 경우 CLI 요청을 실행할 네임스페이스입니다. |
|
카탈로그 Pod에 사용할 보안 컨텍스트를 지정합니다. 허용되는 값에는 |
|
|
-
restricted
보안 컨텍스트는default
네임스페이스와 호환되지 않습니다. 프로덕션 환경에서 Operator의 Pod 보안 승인을 구성하려면 "Pod 보안 승인 관련"을 참조하십시오. Pod 보안 승인에 대한 자세한 내용은 "Pod 보안 승인 이해 및 관리"를 참조하십시오.
9.2.8. scorecard
operator-sdk scorecard
명령은 스코어 카드 툴을 실행하여 Operator 번들을 검증하고 개선을 위해 제안 사항을 제공합니다. 이 명령은 하나의 인수를 사용하며, 인수는 번들 이미지이거나 매니페스트 및 메타데이터가 포함된 디렉터리입니다. 인수에 이미지 태그가 있으면 이미지가 원격으로 존재해야 합니다.
플래그 | Description |
---|---|
|
스코어 카드 구성 파일 경로입니다. 기본 경로는 |
|
|
|
|
| 실행할 수 있는 테스트를 나열합니다. |
| 테스트 이미지를 실행할 네임스페이스입니다. |
|
결과 출력 형식입니다. 사용 가능한 값은 |
|
지정된 보안 컨텍스트를 사용하여 스코어 카드를 실행하는 옵션입니다. 허용되는 값에는 |
| 실행할 테스트를 결정하는 라벨 선택기입니다. |
|
테스트에 사용할 서비스 계정입니다. 기본값은 |
| 테스트가 실행된 후 리소스 정리를 비활성화합니다. |
|
테스트가 완료될 때까지 대기할 시간(초)입니다(예: |
-
restricted
보안 컨텍스트는default
네임스페이스와 호환되지 않습니다. 프로덕션 환경에서 Operator의 Pod 보안 승인을 구성하려면 "Pod 보안 승인 관련"을 참조하십시오. Pod 보안 승인에 대한 자세한 내용은 "Pod 보안 승인 이해 및 관리"를 참조하십시오.
추가 리소스
- 스코어 카드 툴 실행에 대한 자세한 내용은 스코어 카드 툴을 사용하여 Operator 검증을 참조하십시오.