5.5.6.4. Go API 생성
Operator SDK CLI를 사용하여 Go API를 생성합니다.
프로세스
다음 명령을 실행하여 그룹
캐시, 버전v1및 kindMemcachedBackup으로 Go API를 생성합니다.$ operator-sdk create api \ --group=cache \ --version v1 \ --kind MemcachedBackup \ --resource \ --controller \ --plugins=go/v3메시지가 표시되면 리소스 및 컨트롤러를 모두 생성하도록
y를 입력합니다.$ Create Resource [y/n] y Create Controller [y/n] y
이 절차에서는 api/v1/memcachedbackup_types.go 에 MemcachedBackup 리소스 API와 controller /memcachedbackup_controller.go에 컨트롤러 를 생성합니다.
5.5.6.4.1. API 정의 링크 복사링크가 클립보드에 복사되었습니다!
MemcachedBackup CR(사용자 정의 리소스)의 API를 정의합니다.
배포할 MemcachedBackup 인스턴스(CR)의 수량을 설정하는 MemcachedBackupSpec.Size 필드와 CR의 Pod 이름을 저장하기 위한 MemcachedBackupStatus.Nodes 필드를 정의하여 이 Go API를 나타냅니다.
Node 필드는 Status 필드의 예를 설명하는 데 사용됩니다.
프로세스
다음
사양및상태를갖도록api/v1/memcachedbackup_types.go파일에서 Go 유형 정의를 수정하여MemcachedBackupCR의 API를 정의합니다.예 5.3.
api/v1/memcachedbackup_types.go파일의 예// MemcachedBackupSpec defines the desired state of MemcachedBackup type MemcachedBackupSpec struct { // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster // Important: Run "make" to regenerate code after modifying this file //+kubebuilder:validation:Minimum=0 // Size is the size of the memcached deployment Size int32 `json:"size"` } // MemcachedBackupStatus defines the observed state of MemcachedBackup type MemcachedBackupStatus struct { // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster // Important: Run "make" to regenerate code after modifying this file // Nodes are the names of the memcached pods Nodes []string `json:"nodes"` }리소스 유형에 대해 생성된 코드를 업데이트합니다.
$ make generate작은 정보*_types.go파일을 수정한 후에는make generate명령을 실행하여 해당 리소스 유형에 대해 생성된 코드를 업데이트해야 합니다.spec및status필드 및 CRD 검증 마커를 사용하여 API를 정의한 후 CRD 매니페스트를 생성하고 업데이트합니다.$ make manifests
이 Makefile 대상은 controller-gen 유틸리티를 호출하여 config/crd/bases/cache.my.domain_memcachedbackups.yaml 파일에서 CRD 매니페스트를 생성합니다.