5.6.2.3. API 및 컨트롤러 생성


Operator SDK CLI를 사용하여 CRD(사용자 정의 리소스 정의) API 및 컨트롤러를 생성합니다.

프로세스

  1. 다음 명령을 실행하여 API를 생성합니다.

    $ operator-sdk create api \
        --plugins=quarkus \
    1
    
        --group=cache \
    2
    
        --version=v1 \
    3
    
        --kind=Memcached 
    4
    1
    plugin 플래그를 quarkus 로 설정합니다.
    2
    cache 로 그룹 플래그를 설정합니다.
    3
    version 플래그를 v1 로 설정합니다.
    4
    kind 플래그를 Memcached 로 설정합니다.

검증

  1. tree 명령을 실행하여 파일 구조를 확인합니다.

    $ tree

    출력 예

    .
    ├── Makefile
    ├── PROJECT
    ├── pom.xml
    └── src
        └── main
            ├── java
            │   └── com
            │       └── example
            │           ├── Memcached.java
            │           ├── MemcachedReconciler.java
            │           ├── MemcachedSpec.java
            │           └── MemcachedStatus.java
            └── resources
                └── application.properties
    
    6 directories, 8 files

5.6.2.3.1. API 정의

Memcached CR(사용자 정의 리소스)의 API를 정의합니다.

프로세스

  • create api 프로세스의 일부로 생성된 다음 파일을 편집합니다.

    1. MemcachedSpec.java 파일에서 다음 속성을 업데이트하여 Memcached CR의 원하는 상태를 정의합니다.

      public class MemcachedSpec {
      
          private Integer size;
      
          public Integer getSize() {
              return size;
          }
      
          public void setSize(Integer size) {
              this.size = size;
          }
      }
    2. MemcachedStatus.java 파일에서 다음 속성을 업데이트하여 Memcached CR의 관찰 상태를 정의합니다.

      참고

      아래 예제에서는 Node status 필드를 보여줍니다. 실제로 일반적인 상태 속성을 사용하는 것이 좋습니다.

      import java.util.ArrayList;
      import java.util.List;
      
      public class MemcachedStatus {
      
          // Add Status information here
          // Nodes are the names of the memcached pods
          private List<String> nodes;
      
          public List<String> getNodes() {
              if (nodes == null) {
                  nodes = new ArrayList<>();
              }
              return nodes;
          }
      
          public void setNodes(List<String> nodes) {
              this.nodes = nodes;
          }
      }
    3. Memcached.java 파일을 업데이트하여 MemcachedSpec.javaMemcachedStatus.java 파일로 확장되는 Memcached API의 스키마를 정의합니다.

      @Version("v1")
      @Group("cache.example.com")
      public class Memcached extends CustomResource<MemcachedSpec, MemcachedStatus> implements Namespaced {}
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동