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
    プラグインフラグを quarkus に設定します。
    2
    group フラグを 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 ステータスフィールドを示しています。実際には、通常のステータスプロパティー を使用することが推奨されます。

      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 では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る