5.5.6.4. Go API 생성


Operator SDK CLI를 사용하여 Go API를 생성합니다.

프로세스

  1. 다음 명령을 실행하여 그룹 캐시, 버전 v1 및 kind MemcachedBackup 으로 Go API를 생성합니다.

    $ operator-sdk create api \
        --group=cache \
        --version v1 \
        --kind MemcachedBackup \
        --resource \
        --controller \
        --plugins=go/v3
  2. 메시지가 표시되면 리소스 및 컨트롤러를 모두 생성하도록 y 를 입력합니다.

    $ Create Resource [y/n]
    y
    Create Controller [y/n]
    y

이 절차에서는 api/v1/memcachedbackup_types.goMemcachedBackup 리소스 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 필드의 예를 설명하는 데 사용됩니다.

프로세스

  1. 다음 사양상태를 갖도록 api/v1/memcachedbackup_types.go 파일에서 Go 유형 정의를 수정하여 MemcachedBackup CR의 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"`
    }
  2. 리소스 유형에 대해 생성된 코드를 업데이트합니다.

    $ make generate
    작은 정보

    *_types.go 파일을 수정한 후에는 make generate 명령을 실행하여 해당 리소스 유형에 대해 생성된 코드를 업데이트해야 합니다.

  3. specstatus 필드 및 CRD 검증 마커를 사용하여 API를 정의한 후 CRD 매니페스트를 생성하고 업데이트합니다.

    $ make manifests

이 Makefile 대상은 controller-gen 유틸리티를 호출하여 config/crd/bases/cache.my.domain_memcachedbackups.yaml 파일에서 CRD 매니페스트를 생성합니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동