OpenShift への Apicurio Registry のインストールとデプロイ


Red Hat build of Apicurio Registry 2.5

Apicurio Registry 2.5 のインストール、デプロイ、および設定

Red Hat build of Apicurio Registry Documentation Team

概要

このガイドでは、AMQ Streams または PostgreSQL データベースでデータストレージオプションを使用して、OpenShift に Apicurio Registry をインストールおよびデプロイする方法を説明します。本ガイドでは、Apicurio Registry デプロイメントを保護、設定、および管理する方法についても説明し、Apicurio Registry と Apicurio Registry Operator の設定リファレンスを提供します。

はじめに

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。

Red Hat ドキュメントへのフィードバック

Red Hat ドキュメントに関するご意見やご感想をお寄せください。

改善を提案するには、Jira 課題を作成し、変更案についてご説明ください。ご要望に迅速に対応できるよう、できるだけ詳細にご記入ください。

前提条件

  • Red Hat カスタマーポータルのアカウントがある。このアカウントを使用すると、Red Hat Jira Software インスタンスにログインできます。
    アカウントをお持ちでない場合は、アカウントを作成するように求められます。

手順

  1. Create issue にアクセスします。
  2. Summary テキストボックスに、問題の簡単な説明を入力します。
  3. Description テキストボックスに、次の情報を入力します。

    • 問題が見つかったページの URL
    • 問題の詳細情報
      他のフィールドの情報はデフォルト値のままにすることができます。
  4. Create をクリックして、Jira 課題をドキュメントチームに送信します。

フィードバックの提供にご協力いただきありがとうございました。

第1章 Apicurio Registry Operator クイックスタート

カスタムリソース定義 (CRD) を使用して、コマンドラインで Apicurio Registry Operator を迅速にインストールできます。

クイックスタートの例では、SQL データベースにストレージを持つ Apicurio Registry インスタンスをデプロイします。

注記

実稼働環境で推奨されるインストールオプションは OpenShift OperatorHub です。推奨されるストレージオプションは、パフォーマンス、安定性、およびデータ管理のための SQL データベースです。

1.1. Quickstart Apicurio Registry Operator のインストール

Apicurio Registry Operator は、ダウンロードしたインストールファイルとサンプル CRD のセットを使用して、Operator Lifecycle Manager を使用せずにコマンドラインで迅速にインストールおよびデプロイできます。

前提条件

  • アクセス権を持つ管理者として OpenShift クラスターにログインしている。
  • OpenShift oc コマンドラインクライアントがインストールされている。詳細は、OpenShift CLI のドキュメント を参照してください。

手順

  1. Red Hat Software Downloads に移動し、製品バージョンを選択して、Apicurio Registry CRD .zip ファイル内のサンプルをダウンロードします。
  2. ダウンロードした CRD .zip ファイルを展開して、apicurio-registry-install-examples ディレクトリーに移動します。
  3. Apicurio Registry Operator をインストールする OpenShift プロジェクトを作成します。次に例を示します。

    export NAMESPACE="apicurio-registry"
    oc new-project "$NAMESPACE"
  4. 以下のコマンドを実行して、install/install.yaml ファイルにサンプル CRD を適用します。

    cat install/install.yaml | sed "s/apicurio-registry-operator-namespace/$NAMESPACE/g" | oc apply -f -
  5. oc getdeployment と入力して、Apicurio Registry Operator の準備ができているかを確認します。たとえば、出力は以下のようになります。

    NAME                     	READY   UP-TO-DATE  AVAILABLE   AGE
    apicurio-registry-operator  1/1 	1        	1       	XmYs

1.2. Quickstart Apicurio Registry インスタンスのデプロイメント

Apicurio Registry インスタンスのデプロイメントを作成するには、SQL データベースストレージオプションを使用して、既存の PostgreSQL データベースに接続します。

前提条件

  • Apicurio Registry Operator がインストールされている。
  • OpenShift クラスターからアクセス可能な PostgreSQL データベースがある。

手順

  1. エディターで examples/apicurioregistry_sql_cr.yaml ファイルを開き、ApicurioRegistry カスタムリソース (CR) を表示します。

    SQL ストレージの CR の例

    apiVersion: registry.apicur.io/v1
    kind: ApicurioRegistry
    metadata:
      name: example-apicurioregistry-sql
    spec:
      configuration:
        persistence: "sql"
        sql:
          dataSource:
            url: "jdbc:postgresql://<service name>.<namespace>.svc:5432/<database name>"
            userName: "postgres"
            password: "<password>" # Optional

  2. dataSource セクションで、設定例をデータベース接続の詳細に置き換えます。以下に例を示します。

    dataSource:
        url: "jdbc:postgresql://postgresql.apicurio-registry.svc:5432/registry"
        userName: "pgadmin"
        password: "pgpass"
  3. 次のコマンドを入力して、Apicurio Registry Operator を使用して名前空間に更新された ApicurioRegistry CR を適用し、Apicurio Registry インスタンスがデプロイされるのを待ちます。

    oc project "$NAMESPACE"
    oc apply -f ./examples/apicurioregistry_sql_cr.yaml
  4. oc getdeployment と入力して、Apicurio Registry インスタンスの準備ができているかを確認します。たとえば、出力は以下のようになります。

    NAME                     	        READY UP-TO-DATE AVAILABLE AGE
    example-apicurioregistry-sql-deployment 1/1   1          1         XmYs
  5. oc get routes と入力して HOST/PORT URL を取得し、ブラウザーで Apicurio Registry Web コンソールを起動します。以下に例を示します。

    example-apicurioregistry-sql.apicurio-registry.router-default.apps.mycluster.myorg.mycompany.com

第2章 OpenShift に Apicurio Registry をインストールする

本章では、OpenShift Container Platform に Apicurio Registry をインストールする方法を説明します。

前提条件

2.1. OpenShift OperatorHub からの Apicurio Registry のインストール

OperatorHub から OpenShift クラスターに Apicurio Registry Operator をインストールできます。OperatorHub は OpenShift Container Platform Web コンソールから使用でき、クラスター管理者が Operator を検出およびインストールするためのインターフェイスを提供します。詳細については、OperatorHub について を参照してください。

注記

環境に応じて、複数の Apicurio Registry インスタンスをインストールできます。インスタンス数は、Apicurio Registry に保存されているアーティファクトの数および種類と、選択したストレージオプションによって異なります。

前提条件

  • クラスター管理者として OpenShift クラスターにアクセスできる。

手順

  1. OpenShift Container Platform Web コンソールで、クラスター管理者権限を持つアカウントを使用してログインします。
  2. 新しい OpenShift プロジェクトを作成します。

    1. 左側のナビゲーションメニューで、HomeProjectCreate Project と順にクリックします。
    2. プロジェクト名 (my-project など) を入力し、Create をクリックします。
  3. 左側のナビゲーションメニューで、Operators をクリックした後、OperatorHub をクリックします。
  4. Filter by keyword テキストボックスに registry を入力し、Red Hat Integration - Service Registry Operator を見つけます。
  5. Operator に関する情報を読み、Install をクリックして Operator サブスクリプションページを表示します。
  6. サブスクリプション設定を選択します。以下に例を示します。

    • Update Channel: 以下のいずれかを選択します。

      • 2.x: 2.3.0 や 2.0.3 などのすべてのマイナーおよびパッチの更新が含まれます。たとえば、2.0.x へのインストールは 2.3.x にアップグレードされます。
      • 2.0.x: 2.0.1 や 2.0.2 などのパッチの更新のみが含まれます。たとえば、2.0.x へのインストールは 2.3.x を無視します。
    • Installation Mode: 以下のいずれかを選択します。

      • All namespaces on the cluster (default)
      • A specific namespace on the cluster および my-project
    • Approval Strategy: Automatic または Manual を選択します。
  7. Install をクリックし、Operator が使用できるようになるまでしばらく待ちます。

第3章 AMQ Streams に Apicurio Registry ストレージをデプロイする

この章では、AMQ Streams に Apicurio Registry データストレージをインストールして設定する方法について説明します。

3.1. OpenShift OperatorHub からの AMQ Streams のインストール:

AMQ Streams がインストールされていない場合は、OperatorHub から OpenShift クラスターに AMQ Streams Operator をインストールできます。OperatorHub は OpenShift Container Platform Web コンソールから使用でき、クラスター管理者が Operator を検出およびインストールするためのインターフェイスを提供します。詳細については、OperatorHub について を参照してください。

前提条件

  • クラスター管理者として OpenShift クラスターにアクセスできる。
  • AMQ Streams のインストールの詳細は、OpenShift での AMQ Streams のデプロイと管理 を参照してください。ここでは、OpenShift OperatorHub を使用したインストールの簡単な例を示します。

手順

  1. OpenShift Container Platform Web コンソールで、クラスター管理者権限を持つアカウントを使用してログインします。
  2. AMQ Streams をインストールする OpenShift プロジェクトに切り替えます。たとえば、Project ドロップダウンから、my-project を選択します。
  3. 左側のナビゲーションメニューで、Operators をクリックした後、OperatorHub をクリックします。
  4. Filter by keyword テキストボックスに AMQ Streams を入力し、Red Hat Integration - AMQ Streams を見つけます。
  5. Operator に関する情報を読み、Install をクリックして Operator サブスクリプションページを表示します。
  6. サブスクリプション設定を選択します。以下に例を示します。

    • Update Channel を選択してから amq-streams-2.6.x を選択します。
    • Installation Mode: 以下のいずれかを選択します。

      • All namespaces on the cluster (default)
      • A specific namespace on the cluster > my-project
    • Approval Strategy: Automatic または Manual を選択します。
  7. Install をクリックし、Operator が使用できるようになるまでしばらく待ちます。

3.2. OpenShift で Kafka ストレージを使用して Apicurio Registry を設定する

このセクションでは、OpenShift で AMQ Streams を使用して Apicurio Registry 用に Kafka ベースのストレージを設定する方法について説明します。kafkasql ストレージオプションは、キャッシュにインメモリー H2 データベースを備えた Kafka ストレージを使用します。このストレージオプションは、OpenShift の Kafka クラスターに persistent ストレージが設定されている実稼働環境に適しています。

既存の Kafka クラスターに Apicurio Registry をインストールするか、環境に応じて新しい Kafka クラスターを作成できます。

前提条件

手順

  1. OpenShift Container Platform Web コンソールで、クラスター管理者権限を持つアカウントを使用してログインします。
  2. Kafka クラスターがまだ設定されていない場合は、AMQ Streams を使用して新しい Kafka クラスターを作成します。たとえば、OpenShift OperatorHub では以下を実行します。

    1. Installed Operators をクリックしてから Red Hat Integration - AMQ Streams をクリックします。
    2. Provided APIsKafka と選択し、Create Instance をクリックして新しい Kafka クラスターを作成します。
    3. 適切にカスタムリソース定義を編集し、Create をクリックします。

      警告

      デフォルトの例では、3 つの Zookeeper ノード、および、ephemeral ストレージを持つ 3 つの Kafka ノードを持つクラスターが作成されます。この一時ストレージは開発およびテストにのみ適しており、実稼働には適していません。詳細は、OpenShift での AMQ Streams のデプロイと管理 を参照してください。

  3. クラスターの準備ができたら、Provided APIs > Kafka > my-cluster > YAML をクリックします。
  4. status ブロックで、bootstrapServers 値のコピーを作成します。これは、後で Apicurio Registry をデプロイするために使用します。以下に例を示します。

    status:
      ...
      conditions:
      ...
      listeners:
        - addresses:
            - host: my-cluster-kafka-bootstrap.my-project.svc
              port: 9092
          bootstrapServers: 'my-cluster-kafka-bootstrap.my-project.svc:9092'
          type: plain
      ...
  5. Installed Operators > Red Hat Integration - Service Registry > ApicurioRegistry > Create ApicurioRegistry をクリックします。
  6. 次のカスタムリソース定義を貼り付けますが、前にコピーした bootstrapServers 値を使用します。

    apiVersion: registry.apicur.io/v1
    kind: ApicurioRegistry
    metadata:
      name: example-apicurioregistry-kafkasql
    spec:
      configuration:
        persistence: 'kafkasql'
        kafkasql:
          bootstrapServers: 'my-cluster-kafka-bootstrap.my-project.svc:9092'
  7. Create をクリックし、Apicurio Registry ルートが OpenShift に作成されるのを待ちます。
  8. Networking > Route をクリックして、Apicurio Registry Web コンソールの新しいルートにアクセスします。以下に例を示します。

    http://example-apicurioregistry-kafkasql.my-project.my-domain-name.com/
  9. Apicurio Registry がデータの保存に使用する Kafka トピックを設定するには、Installed Operators > Red Hat Integration - AMQ Streams > Provided APIs > Kafka Topic > kafkasql-journal > YAML をクリックします。以下に例を示します。

    apiVersion: kafka.strimzi.io/v1beta2
    kind: KafkaTopic
    metadata:
      name: kafkasql-journal
      labels:
        strimzi.io/cluster: my-cluster
      namespace: ...
    spec:
      partitions: 3
      replicas: 3
      config:
        cleanup.policy: compact
    警告

    Apicurio Registry で使用される Kafka トピック (デフォルトでは kafkasql-journal という名前) を圧縮クリーンアップポリシーで設定する必要があります。そうしないと、データ損失が発生する可能性があります。

関連情報

3.3. TLS セキュリティーでの Kafka ストレージの設定

AMQ Streams Operator および Apicurio Registry Operator を、暗号化された Transport Layer Security (TLS) 接続を使用するように設定できます。

前提条件

  • OperatorHub またはコマンドラインを使用して Apicurio Registry Operator をインストールしている。
  • AMQ Streams Operator がインストールされているか、Kafka が OpenShift クラスターからアクセスできる。
注記

ここでは、AMQ Streams Operator が利用可能であることを前提としていますが、任意の Kafka デプロイメントを使用できます。この場合、Apicurio Registry Operator が想定する Openshift シークレットを手動で作成する必要があります。

手順

  1. OpenShift Web コンソールで Installed Operators をクリックし、AMQ Streams Operator の詳細を選択してから、Kafka タブをクリックします。
  2. Create Kafka をクリックし、Apicurio Registry ストレージの新しい Kafka クラスターをプロビジョニングします。
  3. Kafka クラスターに TLS 認証を使用するように、 authorization フィールドと tls フィールドを設定します。次に例を示します。

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
      namespace: registry-example-kafkasql-tls
      # Change or remove the explicit namespace
    spec:
      kafka:
        config:
          offsets.topic.replication.factor: 3
          transaction.state.log.replication.factor: 3
          transaction.state.log.min.isr: 2
          log.message.format.version: '2.7'
          inter.broker.protocol.version: '2.7'
        version: 2.7.0
        storage:
          type: ephemeral
        replicas: 3
        listeners:
          - name: tls
            port: 9093
            type: internal
            tls: true
            authentication:
              type: tls
        authorization:
          type: simple
      entityOperator:
        topicOperator: {}
        userOperator: {}
      zookeeper:
        storage:
          type: ephemeral
        replicas: 3

    データを保存するために Apicurio Registry によって自動作成されるデフォルトの Kafka トピック名は kafkasql-journal です。環境変数を設定することで、この動作またはデフォルトのトピック名をオーバーライドできます。デフォルト値は以下のとおりです。

    • REGISTRY_KAFKASQL_TOPIC_AUTO_CREATE=true
    • REGISTRY_KAFKASQL_TOPIC=kafkasql-journal

    Kafka トピックを手動で作成しない場合は、次の手順を省略します。

  4. Kafka Topic タブをクリックし、Create Kafka Topic をクリックして、kafkasql-journal トピックを作成します。

    apiVersion: kafka.strimzi.io/v1beta1
    kind: KafkaTopic
    metadata:
      name: kafkasql-journal
      labels:
        strimzi.io/cluster: my-cluster
      namespace: registry-example-kafkasql-tls
    spec:
      partitions: 2
      replicas: 1
      config:
        cleanup.policy: compact
  5. Kafka User リソースを作成し、Apicurio Registry ユーザーの認証および認可を設定します。metadata セクションでユーザー名を指定するか、デフォルトの my-user を使用できます。

    apiVersion: kafka.strimzi.io/v1beta1
    kind: KafkaUser
    metadata:
      name: my-user
      labels:
        strimzi.io/cluster: my-cluster
      namespace: registry-example-kafkasql-tls
    spec:
      authentication:
        type: tls
      authorization:
        acls:
          - operation: All
            resource:
              name: '*'
              patternType: literal
              type: topic
          - operation: All
            resource:
              name: '*'
              patternType: literal
              type: cluster
          - operation: All
            resource:
              name: '*'
              patternType: literal
              type: transactionalId
          - operation: All
            resource:
              name: '*'
              patternType: literal
              type: group
        type: simple
    注記

    このシンプルな例では、admin パーミッションを前提とし、Kafka トピックを自動的に作成します。Apicurio Registry が必要とするトピックとリソース専用に authorization セクションを設定する必要があります。

    次の例は、Kafka トピックを手動で作成する場合に必要な最小設定を示しています。

     ...
      authorization:
        acls:
        - operations:
            - Read
            - Write
          resource:
            name: kafkasql-journal
            patternType: literal
            type: topic
        - operations:
            - Read
            - Write
          resource:
            name: apicurio-registry-
            patternType: prefix
            type: group
        type: simple
  6. WorkloadsSecrets の順にクリックして、Apicurio Registry が Kafka クラスターに接続するために AMQ Streams が作成する 2 つのシークレットを見つけます。

    • my-cluster-cluster-ca-cert - Kafka クラスターの PKCS12 トラストストアが含まれています
    • my-user - ユーザーのキーストアが含まれます

      注記

      シークレットの名前は、クラスターまたはユーザー名によって異なります。

  7. シークレットを手動で作成する場合は、以下のキーと値のペアを含める必要があります。

    • my-cluster-ca-cert

      • ca.p12 - PKCS12 形式のトラストストア
      • ca.password - truststore password
    • my-user

      • user.p12 - PKCS12 形式のキーストア
      • user.password - keystore password
  8. 次の設定例を設定して、Apicurio Registry をデプロイします。

    apiVersion: registry.apicur.io/v1
    kind: ApicurioRegistry
    metadata:
      name: example-apicurioregistry-kafkasql-tls
    spec:
      configuration:
        persistence: "kafkasql"
        kafkasql:
          bootstrapServers: "my-cluster-kafka-bootstrap.registry-example-kafkasql-tls.svc:9093"
          security:
            tls:
              keystoreSecretName: my-user
              truststoreSecretName: my-cluster-cluster-ca-cert
重要

プレーンでセキュアでないユースケースとは別の bootstrapServers アドレスを使用する必要があります。アドレスは TLS 接続をサポートする必要があり、指定された Kafka リソースの type:tls フィールドにあります。

3.4. SCRAM セキュリティーでの Kafka ストレージの設定

Kafka クラスターの Salted Challenge Response Authentication Mechanism (SCRAM-SHA-512) を使用するように AMQ Streams Operator および Apicurio Registry Operator を設定できます。

前提条件

  • OperatorHub またはコマンドラインを使用して Apicurio Registry Operator をインストールしている。
  • AMQ Streams Operator がインストールされているか、Kafka が OpenShift クラスターからアクセスできる。
注記

ここでは、AMQ Streams Operator が利用可能であることを前提としていますが、任意の Kafka デプロイメントを使用できます。この場合、Apicurio Registry Operator が想定する Openshift シークレットを手動で作成する必要があります。

手順

  1. OpenShift Web コンソールで Installed Operators をクリックし、AMQ Streams Operator の詳細を選択してから、Kafka タブをクリックします。
  2. Create Kafka をクリックし、Apicurio Registry ストレージの新しい Kafka クラスターをプロビジョニングします。
  3. Kafka クラスターに SCRAM-SHA-512 認証を使用するように、 authorization フィールドと tls フィールドを設定します。次に例を示します。

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
      namespace: registry-example-kafkasql-scram
      # Change or remove the explicit namespace
    spec:
      kafka:
        config:
          offsets.topic.replication.factor: 3
          transaction.state.log.replication.factor: 3
          transaction.state.log.min.isr: 2
          log.message.format.version: '2.7'
          inter.broker.protocol.version: '2.7'
        version: 2.7.0
        storage:
          type: ephemeral
        replicas: 3
        listeners:
          - name: tls
            port: 9093
            type: internal
            tls: true
            authentication:
              type: scram-sha-512
        authorization:
          type: simple
      entityOperator:
        topicOperator: {}
        userOperator: {}
      zookeeper:
        storage:
          type: ephemeral
        replicas: 3

    データを保存するために Apicurio Registry によって自動作成されるデフォルトの Kafka トピック名は kafkasql-journal です。環境変数を設定することで、この動作またはデフォルトのトピック名をオーバーライドできます。デフォルト値は以下のとおりです。

    • REGISTRY_KAFKASQL_TOPIC_AUTO_CREATE=true
    • REGISTRY_KAFKASQL_TOPIC=kafkasql-journal

    Kafka トピックを手動で作成しない場合は、次の手順を省略します。

  4. Kafka Topic タブをクリックし、Create Kafka Topic をクリックして、kafkasql-journal トピックを作成します。

    apiVersion: kafka.strimzi.io/v1beta1
    kind: KafkaTopic
    metadata:
      name: kafkasql-journal
      labels:
        strimzi.io/cluster: my-cluster
      namespace: registry-example-kafkasql-scram
    spec:
      partitions: 2
      replicas: 1
      config:
        cleanup.policy: compact
  5. Kafka User リソースを作成し、Apicurio Registry ユーザーの SCRAM 認証および認可を設定します。metadata セクションでユーザー名を指定するか、デフォルトの my-user を使用できます。

    apiVersion: kafka.strimzi.io/v1beta1
    kind: KafkaUser
    metadata:
      name: my-user
      labels:
        strimzi.io/cluster: my-cluster
      namespace: registry-example-kafkasql-scram
    spec:
      authentication:
        type: scram-sha-512
      authorization:
        acls:
          - operation: All
            resource:
              name: '*'
              patternType: literal
              type: topic
          - operation: All
            resource:
              name: '*'
              patternType: literal
              type: cluster
          - operation: All
            resource:
              name: '*'
              patternType: literal
              type: transactionalId
          - operation: All
            resource:
              name: '*'
              patternType: literal
              type: group
        type: simple
    注記

    このシンプルな例では、admin パーミッションを前提とし、Kafka トピックを自動的に作成します。Apicurio Registry が必要とするトピックとリソース専用に authorization セクションを設定する必要があります。

    次の例は、Kafka トピックを手動で作成する場合に必要な最小設定を示しています。

     ...
      authorization:
        acls:
        - operations:
            - Read
            - Write
          resource:
            name: kafkasql-journal
            patternType: literal
            type: topic
        - operations:
            - Read
            - Write
          resource:
            name: apicurio-registry-
            patternType: prefix
            type: group
        type: simple
  6. WorkloadsSecrets の順にクリックして、Apicurio Registry が Kafka クラスターに接続するために AMQ Streams が作成する 2 つのシークレットを見つけます。

    • my-cluster-cluster-ca-cert - Kafka クラスターの PKCS12 トラストストアが含まれています
    • my-user - ユーザーのキーストアが含まれます

      注記

      シークレットの名前は、クラスターまたはユーザー名によって異なります。

  7. シークレットを手動で作成する場合は、以下のキーと値のペアを含める必要があります。

    • my-cluster-ca-cert

      • ca.p12 -PKCS12 形式のトラストストア
      • ca.password - truststore password
    • my-user

      • パスワード - ユーザーパスワード
  8. Apicurio Registry をデプロイするように、以下の設定例を設定します。

    apiVersion: registry.apicur.io/v1
    kind: ApicurioRegistry
    metadata:
      name: example-apicurioregistry-kafkasql-scram
    spec:
      configuration:
        persistence: "kafkasql"
        kafkasql:
          bootstrapServers: "my-cluster-kafka-bootstrap.registry-example-kafkasql-scram.svc:9093"
          security:
            scram:
              truststoreSecretName: my-cluster-cluster-ca-cert
              user: my-user
              passwordSecretName: my-user
重要

プレーンでセキュアでないユースケースとは別の bootstrapServers アドレスを使用する必要があります。アドレスは TLS 接続をサポートする必要があり、指定された Kafka リソースの type:tls フィールドにあります。

3.5. Kafka ストレージの OAuth 認証の設定

AMQ Sttreams で Kafka-based のストレージを使用する場合、Service Registry は OAuth 認証を必要とする Kafka クラスターへのアクセスをサポートします。このサポートを有効にするには、Apicurio Registry デプロイメントでいくつかの環境変数を設定する必要があります。

これらの環境変数を設定すると、Apicurio Registry の Kafka プロデューサーおよびコンシューマーアプリケーションはこの設定を使用して、OAuth を介して Kafka クラスターに対して認証します。

前提条件

手順

  • Apicurio Registry デプロイメントで次の環境変数を設定します。

    環境変数説明デフォルト値

    ENABLE_KAFKA_SASL

    Kafka の Apicurio Registry ストレージの SASL OAuth 認証を有効にします。他の変数を有効にするには、この変数を true に設定する必要があります。

    false

    CLIENT_ID

    Kafka への認証に使用されるクライアント ID。

    -

    CLIENT_SECRET

    Kafka への認証に使用されるクライアントシークレット。

    -

    OAUTH_TOKEN_ENDPOINT_URI

    OAuth ID サーバーの URL。

    http://localhost:8090

関連情報

第4章 PostgreSQL データベースに Apicurio Registry ストレージをデプロイする

本章では、PostgreSQL データベースで Apicurio Registry データストレージをインストール、設定、および管理する方法を説明します。

4.1. OpenShift OperatorHub からの PostgreSQL データベースのインストール

PostgreSQL データベース Operator がインストールされていない場合は、OperatorHub から OpenShift クラスターに PostgreSQL Operator をインストールできます。OperatorHub は OpenShift Container Platform Web コンソールから使用でき、クラスター管理者が Operator を検出およびインストールするためのインターフェイスを提供します。詳細については、OperatorHub について を参照してください。

前提条件

  • クラスター管理者として OpenShift クラスターにアクセスできる。

手順

  1. OpenShift Container Platform Web コンソールで、クラスター管理者権限を持つアカウントを使用してログインします。
  2. PostgreSQL Operator をインストールする OpenShift プロジェクトに切り替えます。たとえば、Project ドロップダウンから、my-project を選択します。
  3. 左側のナビゲーションメニューで、Operators をクリックした後、OperatorHub をクリックします。
  4. Filter by keyword テキストボックスに PostgreSQL と入力して、環境に適した Operator を見つけます (例: Crunchy PostgreSQL for OpenShift)。
  5. Operator に関する情報を読み、Install をクリックして Operator サブスクリプションページを表示します。
  6. サブスクリプション設定を選択します。以下に例を示します。

    • Update Channel: stable
    • Installation Mode: A specific namespace on the cluster および my-project
    • Approval Strategy: Automatic または Manual を選択します。
  7. Install をクリックし、Operator が使用できるようになるまでしばらく待ちます。

    重要

    データベースの作成と管理方法の詳細については、選択したPostgreSQL Operator のドキュメントを読む必要があります。

4.2. OpenShift での PostgreSQL データベースストレージを使用した Apicurio Registry の設定

本セクションでは、PostgreSQL データベース Operator を使用して、OpenShift の Apicurio Registry のストレージを設定する方法を説明します。既存のデータベースに Apicurio Registry をインストールするか、環境に応じて新規データベースを作成することができます。本セクションでは、Dev4Ddevs.com による PostgreSQL Operator を使用する簡単な例を紹介します。

前提条件

手順

  1. OpenShift Container Platform Web コンソールで、クラスター管理者権限を持つアカウントを使用してログインします。
  2. Apicurio Registry および PostgreSQL Operator がインストールされている OpenShift プロジェクトに切り替えます。たとえば、Project ドロップダウンから、my-project を選択します。
  3. Apicurio Registry ストレージの PostgreSQL データベースを作成します。たとえば、Installed OperatorsPostgreSQL Operator by Dev4Ddevs.com の順にクリックした後、Create database をクリックします。
  4. YAML をクリックし、以下のようにデータベース設定を編集します。

    • name: 値を registry に変更します
    • image: 値を centos/postgresql-12-centos7 に変更します
  5. 実際の環境に応じて、必要に応じてその他のデータベース設定を編集します。以下に例を示します。

    apiVersion: postgresql.dev4devs.com/v1alpha1
    kind: Database
    metadata:
      name: registry
      namespace: my-project
    spec:
      databaseCpu: 30m
      databaseCpuLimit: 60m
      databaseMemoryLimit: 512Mi
      databaseMemoryRequest: 128Mi
      databaseName: example
      databaseNameKeyEnvVar: POSTGRESQL_DATABASE
      databasePassword: postgres
      databasePasswordKeyEnvVar: POSTGRESQL_PASSWORD
      databaseStorageRequest: 1Gi
      databaseUser: postgres
      databaseUserKeyEnvVar: POSTGRESQL_USER
      image: centos/postgresql-12-centos7
      size: 1
  6. Create をクリックし、データベースが作成されるまで待ちます。
  7. Installed Operators > Red Hat Integration - Service Registry > ApicurioRegistry > Create ApicurioRegistry をクリックします。
  8. 以下のカスタムリソース定義に貼り付け、データベース url およびクレデンシャルの値を編集して環境と一致するようにします。

    apiVersion: registry.apicur.io/v1
    kind: ApicurioRegistry
    metadata:
      name: example-apicurioregistry-sql
    spec:
      configuration:
        persistence: 'sql'
        sql:
          dataSource:
            url: 'jdbc:postgresql://<service name>.<namespace>.svc:5432/<database name>'
            # e.g. url: 'jdbc:postgresql://acid-minimal-cluster.my-project.svc:5432/registry'
            userName: 'postgres'
            password: '<password>' # Optional
  9. Create をクリックし、Apicurio Registry ルートが OpenShift に作成されるのを待ちます。
  10. Networking > Route をクリックして、Apicurio Registry Web コンソールの新しいルートにアクセスします。以下に例を示します。

    http://example-apicurioregistry-sql.my-project.my-domain-name.com/

4.3. Apicurio Registry PostgreSQL ストレージのバックアップ

PostgreSQL データベースでストレージを使用する場合は、Apicurio Registry に保存されているデータを定期的にバックアップする必要があります。

SQL Dump は、どのような PostgreSQL インストールでも動作するシンプルな手順です。これは pg_dump ユーティリティーを使用して、ダンプ時と同じ状態でデータベースを再作成するために使用できる SQL コマンドでファイルを生成します。

pg_dump は通常の PostgreSQL クライアントアプリケーションで、データベースにアクセスできる任意のリモートホストから実行することができます。他のクライアントと同様に、実行できる操作はユーザーの権限によって制限されます。

手順

  • pg_dump コマンドを使用して、出力をファイルにリダイレクトします。

     $ pg_dump dbname > dumpfile

    -hhost および -pport オプションを使用して、 pg_dump が接続するデータベースサーバーを指定できます。

  • gzip などの圧縮ツールを使用して大きなダンプファイルを減らすことができます。以下に例を示します。

     $ pg_dump dbname | gzip > filename.gz

関連情報

4.4. Apicurio Registry PostgreSQL ストレージの復元

psql ユーティリティーを使用して、 pg_dump によって作成された SQL Dump ファイルを復元できます。

前提条件

  • pg_dump を使用して、PostgreSQL データベースをすでにバックアップしている。「Apicurio Registry PostgreSQL ストレージのバックアップ」を参照してください。
  • オブジェクトを所有するユーザー、またはダンプされたデータベースのオブジェクトに対する権限があるユーザーがすべて存在している。

手順

  1. 以下のコマンドを入力して、データベースを作成します。

     $ createdb -T template0 dbname
  2. 以下のコマンドを入力して SQL ダンプを復元します

     $ psql dbname < dumpfile
  3. クエリーオプティマイザーが便利な統計を持つように、各データベースで ANALYZE を実行します。

第5章 Apicurio Registry デプロイメントの保護

Apicurio Registry は、OpenID Connect (OIDC) および HTTP Basic をベースとする Red Hat Single Sign-On を使用して、認証および認可を行います。Red Hat Single Sign-On Operator を使用して必要な設定を自動的に設定するか、Red Hat Single Sign-On および Apicurio Registry で手動で設定する必要があります。

Apicurio Registry は、OpenID Connect (OIDC) と OAuth 認可コードフローをベースとする Microsoft Azure Active Directory を使用した認証と認可も行います。Azure AD および Apicurio Registry で、必要な設定を手動で行えます。

Apicurio Registry は、Red Hat Single Sign-On または Azure AD を使用したロールベースの認可オプションに加えて、アーティファクト作成者のみが書き込み権限を持つ、スキーマまたは API レベルでのコンテンツベースの認可も提供します。OpenShift クラスターの内部または外部から Apicurio Registry への HTTPS 接続を設定することもできます。

この章では、OpenShift 上の Apicurio Registry デプロイメントで、次のセキュリティーオプションを設定する方法について説明します。

関連情報

5.1. Red Hat Single Sign-On Operator を使用した Apicurio Registry の保護

次の手順は、Red Hat Single Sign-On によって保護されるように Apicurio Registry REST API と Web コンソールを設定する方法を示しています。

Apicurio Registry は、次のユーザーロールをサポートしています。

表5.1 Apicurio Registry ユーザーのロール
名前機能

sr-admin

完全なアクセス。制限はありません。

sr-developer

アーティファクトを作成し、アーティファクトルールを設定します。グローバルルールの変更、インポート/エクスポートの実行、/admin REST API エンドポイントの使用はできません。

sr-readonly

表示と検索のみ。アーテファクトやルールの変更、インポート/エクスポートの実行、/admin REST API エンドポイントの使用はできません。

注記

ApicurioRegistry CRD には、Web コンソールを読み取り専用モードに設定するために使用できる関連する設定オプションがあります。ただし、この設定は REST API には影響しません。

前提条件

  • Apicurio Registry Operator がインストールされている。
  • Red Hat Single Sign-On Operator をインストールするか、OpenShift クラスターからアクセスできる Red Hat Single Sign-On が必要です。
重要

この手順の設定例は、開発およびテストのみを目的としています。手順を単純にするために、実稼働環境で推奨される HTTPS やその他のセキュリティーは使用しません。詳細は、Red Hat Single Sign-On のドキュメントを参照してください。

手順

  1. OpenShift Web コンソールで、Installed Operators および Red Hat Single Sign-On Operator をクリックし、Keycloak タブをクリックします。
  2. Create Keycloak をクリックし、Apicurio Registry デプロイメントのセキュリティーを保護するために、新しい Red Hat Single Sign-On インスタンスをプロビジョニングします。デフォルト値を使用できます。以下に例を示します。

    apiVersion: keycloak.org/v1alpha1
    kind: Keycloak
    metadata:
      name: example-keycloak
      labels:
        app: sso
    spec:
      instances: 1
      externalAccess:
        enabled: True
      podDisruptionBudget:
        enabled: True
  3. インスタンスが作成されるまで待ち、Networking をクリックした後に Routes をクリックし、keycloak インスタンスの新規ルートにアクセスします。
  4. Location URL をクリックし、表示された URL 値をコピーして、後で Apicurio Registry のデプロイ時に使用します。
  5. Installed Operators および Red Hat Single Sign-On Operator をクリックし、Keycloak Realm タブをクリックした後、Create Keycloak Realm をクリックして registry のサンプルレルムを作成します。

    apiVersion: keycloak.org/v1alpha1
    kind: KeycloakRealm
    metadata:
      name: registry-keycloakrealm
      labels:
        app: sso
    spec:
      instanceSelector:
        matchLabels:
          app: sso
      realm:
        displayName: Registry
        enabled: true
        id: registry
        realm: registry
        sslRequired: none
        roles:
          realm:
            - name: sr-admin
            - name: sr-developer
            - name: sr-readonly
        clients:
          - clientId: registry-client-ui
            implicitFlowEnabled: true
            redirectUris:
              - '*'
            standardFlowEnabled: true
            webOrigins:
              - '*'
            publicClient: true
          - clientId: registry-client-api
            implicitFlowEnabled: true
            redirectUris:
              - '*'
            standardFlowEnabled: true
            webOrigins:
              - '*'
            publicClient: true
        users:
          - credentials:
              - temporary: false
                type: password
                value: changeme
            enabled: true
            realmRoles:
              - sr-admin
            username: registry-admin
          - credentials:
              - temporary: false
                type: password
                value: changeme
            enabled: true
            realmRoles:
              - sr-developer
            username: registry-developer
          - credentials:
              - temporary: false
                type: password
                value: changeme
            enabled: true
            realmRoles:
              - sr-readonly
            username: registry-user
    重要

    実稼働環境にデプロイする場合は、ご使用の環境に適した値でこの KeycloakRealm リソースをカスタマイズする必要があります。Red Hat Single Sign-On Web コンソールを使用してレルムを作成および管理することもできます。

  6. クラスターに有効な HTTPS 証明書が設定されていない場合は、一時的な回避策として次の HTTP Service および Ingress リソースを作成できます。

    1. Networking をクリックしてから Services をクリックし、以下の例を使用して Create Service をクリックします。

      apiVersion: v1
      kind: Service
      metadata:
        name: keycloak-http
        labels:
          app: keycloak
      spec:
        ports:
          - name: keycloak-http
            protocol: TCP
            port: 8080
            targetPort: 8080
        selector:
          app: keycloak
          component: keycloak
        type: ClusterIP
        sessionAffinity: None
      status:
        loadBalancer: {}
    2. Networking をクリックしてから Ingresses をクリックし、以下の例を使用して Create Ingress をクリックします。

      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:
        name: keycloak-http
        labels:
          app: keycloak
      spec:
        rules:
          - host: KEYCLOAK_HTTP_HOST
            http:
              paths:
                - path: /
                  pathType: ImplementationSpecific
                  backend:
                    service:
                      name: keycloak-http
                      port:
                        number: 8080

      host の値を変更して、Apicurio Registry ユーザーがアクセスできるルートを作成し、Red Hat Single Sign-On Operator によって作成された HTTPS ルートの代わりにこれを使用します。

  7. Apicurio Registry Operator をクリックし、以下の例のように ApicurioRegistry タブをクリックして Create ApicurioRegistry をクリックしますが、keycloak セクションの値を置き換えます。

    apiVersion: registry.apicur.io/v1
    kind: ApicurioRegistry
    metadata:
      name: example-apicurioregistry-kafkasql-keycloak
    spec:
      configuration:
        security:
          keycloak:
            url: "http://keycloak-http-<namespace>.apps.<cluster host>"
            # ^ Required
            # Use an HTTP URL in development.
            realm: "registry"
            # apiClientId: "registry-client-api"
            # ^ Optional (default value)
            # uiClientId: "registry-client-ui"
            # ^ Optional (default value)
        persistence: 'kafkasql'
        kafkasql:
          bootstrapServers: '<my-cluster>-kafka-bootstrap.<my-namespace>.svc:9092'

5.2. Red Hat Single Sign-On を使用した Apicurio Registry の認証と認可の設定

このセクションでは、Apicurio Registry および Red Hat Single Sign-On の認証および認可オプションを手作業で設定する方法を説明します。

注記

また、これらの設定を自動的に設定する方法の詳細は、「Red Hat Single Sign-On Operator を使用した Apicurio Registry の保護」 を参照してください。

Apicurio Registry Web コンソールとコア REST API は、OAuth と OpenID Connect (OIDC) をベースとする Red Hat Single Sign-On での認証をサポートします。同じ Red Hat Single Sign-On レルムとユーザーは OpenID Connect を使用して Apicurio Registry Web コンソールとコア REST API で連携されるため、必要なクレデンシャルは 1 セットのみです。

Apicurio Registry は、デフォルトの admin、write、および read-only ユーザーロールのロールベースの認可を提供します。Apicurio Registry は、レジストリーアーティファクトの作成者のみが更新または削除できる、コンテンツベースの認可をスキーマまたは API レベルで提供します。Apicurio Registry の認証および認可設定は、デフォルトでは無効になっています。

前提条件

手順

  1. Red Hat Single Sign-On 管理コンソールで、Apicurio Registry 用の Red Hat Single Sign-On レルムを作成します。デフォルトでは、Apicurio Registry は registry のレルム名を想定しています。レルムの作成に関する詳細は、Red Hat Single Sign-On のユーザードキュメント を参照してください。
  2. Apicurio Registry API 用の Red Hat Single Sign-On クライアントを作成します。デフォルトでは、Apicurio Registry は次の設定を想定しています。

    • Client ID: registry-api
    • Client Protocol: openid-connect
    • Access Type: bearer-only

      他のクライアント設定にはデフォルト値を使用できます。

      注記

      Red Hat Single Sign-On サービスアカウントを使用している場合、クライアントの Access Type は、bearer-only ではなく confidential である必要があります。

  3. Apicurio Registry Web コンソール用の Red Hat Single Sign-On クライアントを作成します。デフォルトでは、Apicurio Registry は次の設定を想定しています。

    • Client ID: apicurio-registry
    • Client Protocol: openid-connect
    • Access Type: public
    • Valid Redirect URLs: http://my-registry-url:8080/*
    • Web Origins: +

      他のクライアント設定にはデフォルト値を使用できます。

  4. OpenShift 上の Apicurio Registry デプロイメントで、次の Apicurio Registry 環境変数を設定して、Red Hat Single Sign-On を使用した認証を設定します。

    表5.2 Red Hat Single Sign-On を使用した Apicurio Registry 認証の設定
    環境変数説明デフォルト

    AUTH_ENABLED

    Apicurio Registry の認証を有効にします。true に設定する場合は、以下の環境変数が Red Hat Single Sign-On の認証に必要です。

    String

    false

    KEYCLOAK_URL

    Red Hat Single Sign-On 認証サーバーの URL。たとえば、http://localhost:8080 です。

    String

    -

    KEYCLOAK_REALM

    認証用の Red Hat Single Sign-On レルム。たとえば、registry です。

    String

    -

    KEYCLOAK_API_CLIENT_ID

    Apicurio Registry REST API のクライアント ID。

    String

    registry-api

    KEYCLOAK_UI_CLIENT_ID

    Apicurio Registry Web コンソールのクライアント ID。

    String

    apicurio-registry

    ヒント

    OpenShift に環境変数を設定する例については、「OpenShift での Apicurio Registry ヘルスチェックの設定」 を参照してください。

  5. 以下のオプションを true に設定して、Red Hat Single Sign-On で Apicurio Registry ユーザーロールを有効にします。

    表5.3 Apicurio Registry ロールベース認証の設定
    環境変数Java システムプロパティーデフォルト値

    ROLE_BASED_AUTHZ_ENABLED

    registry.auth.role-based-authorization

    Boolean

    false

  6. Apicurio Registry ユーザーロールが有効になっている場合、Apicurio Registry ユーザーを、Red Hat Single Sign-On レルム内の以下のデフォルトユーザーロールの少なくとも 1 つに割り当てる必要があります。

    表5.4 レジストリーの認証および認可のデフォルトユーザーロール
    Roleアーティファクトの読み取りアーティファクトの書き込みグローバルルールSummary

    sr-admin

    はい

    すべての作成、読み取り、更新、および削除操作へのフルアクセス。

    sr-developer

    はい

    グローバルルールの設定を除く、作成、読み取り、更新、および削除操作へのアクセス。このロールは、アーティファクト固有のルールを設定できます。

    sr-readonly

    いいえ

    読み取りおよび検索操作のみへのアクセス。このロールはルールを設定できません。

  7. 以下を true に設定して、Apicurio Registry のスキーマおよび API アーティファクトの更新に対して所有者のみの認可を有効にします。

    表5.5 所有者のみの認可の設定
    環境変数Java システムプロパティーデフォルト値

    REGISTRY_AUTH_OBAC_ENABLED

    registry.auth.owner-only-authorization

    Boolean

    false

関連情報

5.3. Microsoft Azure Active Directory を使用した Apicurio Registry の認証と認可の設定

このセクションでは、Apicurio Registry および Microsoft Azure Active Directory (Azure AD) の認証および認可オプションを手動で設定する方法について説明します。

Apicurio Registry Web コンソールとコア REST API は、OpenID Connect (OIDC) と OAuth 認可コードフローに基づく Azure AD での認証をサポートします。Apicurio Registry は、デフォルトの admin、write、および read-only ユーザーロールのロールベースの認可を提供します。Apicurio Registry の認証および認可設定は、デフォルトでは無効になっています。

Azure AD を使用して Apicurio Registry を保護するには、特定の設定を持つ Azure AD 内の有効なディレクトリーが必要です。これには、推奨設定を使用して Apicurio Registry アプリケーションを Azure AD ポータルに登録し、Apicurio Registry で環境変数を設定することが含まれます。

前提条件

手順

  1. メールアドレスまたは GitHub アカウントを使用して Azure AD ポータルにログインします。
  2. ナビゲーションメニューで、Manage > App registrations > New registration を選択し、次の設定を完了します。

    • Name: アプリケーション名を入力します。例: apicurio-registry-example
    • Supported account types: Accounts in any organizational directory をクリックします。
    • Redirect URI: リストから Single-page application を選択し、Apicurio Registry Web コンソールアプリケーションホストを入力します。例: https://test-registry.com/ui/

      重要

      Apicurio Registry アプリケーションホストを Redirect URI として登録する必要があります。ログインすると、ユーザーは認証のために Apicurio Registry から Azure AD にリダイレクトされます。その後、ユーザーをアプリケーションに戻す必要があります。Azure AD では、登録されていないリダイレクト URL は許可されません。

  3. Register をクリックします。アプリケーション登録の詳細は、Manage > App registrations > apicurio-registry-example を選択すると表示されます。
  4. Manage > Authentication を選択し、アプリケーションがリダイレクト URL とトークンを使用して次のように設定されていることを確認します。

    • Redirect URIs: たとえば、https://test-registry.com/ui/ です。
    • Implicit grant and hybrid flows: ID tokens (used for implicit and hybrid flows) をクリックします。
  5. Azure AD > Admin > App registrations > Your app > Application (client) ID を選択します。例: 123456a7-b8c9-012d-e3f4-5fg67h8i901
  6. Azure AD > Admin > App registrations > Your app > Directory (tenant) ID を選択します。例: https://login.microsoftonline.com/1a2bc34d-567e-89f1-g0hi-1j2kl3m4no56/v2.0
  7. Apicurio Registry で、Azure AD 設定を使用して次の環境変数を設定します。

    表5.6 Apicurio Registry での Azure AD の設定
    環境変数説明設定

    KEYCLOAK_API_CLIENT_ID

    Apicurio Registry REST API のクライアントアプリケーション ID

    手順 5 で取得した Azure AD アプリケーション (クライアント) ID。例: 123456a7-b8c9-012d-e3f4-5fg67h8i901

    REGISTRY_OIDC_UI_CLIENT_ID

    Apicurio Registry Web コンソールのクライアントアプリケーション ID。

    手順 5 で取得した Azure AD アプリケーション (クライアント) ID。例: 123456a7-b8c9-012d-e3f4-5fg67h8i901

    REGISTRY_AUTH_URL_CONFIGURED

    Azure AD での認証用 URL。

    手順 6 で取得した Azure AD アプリケーション (テナント) ID。例: https://login.microsoftonline.com/1a2bc34d-567e-89f1-g0hi-1j2kl3m4no56/v2.0

  8. Apicurio Registry で、Apicurio Registry 固有の設定用に次の環境変数を設定します。

    表5.7 Apicurio レジストリー固有の設定
    環境変数説明設定

    REGISTRY_AUTH_ENABLED

    Apicurio Registry の認証を有効にします。

    true

    REGISTRY_UI_AUTH_TYPE

    Apicurio Registry 認証タイプ。

    oidc

    CORS_ALLOWED_ORIGINS

    Cross-Origin Resource Sharing (CORS) 用の Apicurio Registry デプロイメントのホスト。

    例: https://test-registry.com

    REGISTRY_OIDC_UI_REDIRECT_URL

    Apicurio Registry Web コンソールのホスト。

    例: https://test-registry.com/ui

    ROLE_BASED_AUTHZ_ENABLED

    Apicurio レジストリーでロールベースの認証を有効にします。

    true

    QUARKUS_OIDC_ROLES_ROLE_CLAIM_PATH

    Azure AD がロールを保存するクレームの名前。

    roles

    注記

    Apicurio Registry でロールを有効にする場合は、アプリケーションロールとして同じロールを Azure AD でも作成する必要があります。Apicurio Registry で想定されるデフォルトのロールは、sr-adminsr-developersr-readonly です。

関連情報

5.4. Apicurio Registry の認証および認可の設定オプション

Apicurio Registry は、Red Hat Single Sign-On または HTTP 基本認証を使用した OpenID Connect の認証オプションを提供します。

Apicurio Registry には、ロールベースおよびコンテンツベースのアプローチの認可オプションが用意されています。

  • デフォルトの管理者、書き込み、および読み取り専用のユーザーロールに対するロールベースの認可。
  • アーティファクトまたはアーティファクトグループの所有者のみがアーティファクトを更新または削除できるスキーマまたは API アーティファクトのコンテンツベースの認可。
重要

Apicurio Registry のすべての認証および認可オプションはデフォルトで無効になっています。これらのオプションのいずれかを有効にする前に、まず AUTH_ENABLED オプションを true に設定する必要があります。

この章では、次の設定オプションについて詳しく説明します。

OpenID Connect と Red Hat Single Sign-On を使用した Apicurio Registry 認証

以下の環境変数を設定して、Red Hat Single Sign-On を使用して Apicurio Registry Web コンソールおよび API の認証を設定できます。

表5.8 Red Hat Single Sign-On を使用した Apicurio Registry 認証の設定
環境変数説明デフォルト

AUTH_ENABLED

Apicurio Registry の認証を有効にします。true に設定する場合は、以下の環境変数が Red Hat Single Sign-On の認証に必要です。

String

false

KEYCLOAK_URL

Red Hat Single Sign-On 認証サーバーの URL。たとえば、http://localhost:8080 です。

String

-

KEYCLOAK_REALM

認証用の Red Hat Single Sign-On レルム。たとえば、registry です。

String

-

KEYCLOAK_API_CLIENT_ID

Apicurio Registry REST API のクライアント ID。

String

registry-api

KEYCLOAK_UI_CLIENT_ID

Apicurio Registry Web コンソールのクライアント ID。

String

apicurio-registry

HTTP Basic を使用した Apicurio Registry 認証

デフォルトでは、Apicurio Registry は OpenID Connect を使用した認証をサポートしています。ユーザーまたは API クライアントは、Apicurio Registry REST API への認証済み呼び出しを行うためにアクセストークンを取得する必要があります。ただし、一部のツールは OpenID Connect をサポートしていないため、次の設定オプションを true に設定することで、HTTP Basic 認証をサポートするように Apicurio Registry を設定することもできます。

表5.9 Apicurio Registry HTTP 基本認証の設定
環境変数Java システムプロパティーデフォルト値

AUTH_ENABLED

registry.auth.enabled

Boolean

false

CLIENT_CREDENTIALS_BASIC_AUTH_ENABLED

registry.auth.basic-auth-client-credentials.enabled

Boolean

false

Apicurio Registry HTTP Basic クライアント認証情報キャッシュの有効期限

HTTP Basic クライアント認証情報キャッシュの有効期限を設定することもできます。デフォルトでは、HTTP Basic 認証を使用する場合、Apicurio Registry は JWT トークンをキャッシュし、不要なときに新しいトークンを発行しません。JWT トークンのキャッシュ有効期限を設定できます。このトークンは、デフォルトで 10 分に設定されます。

Red Hat Single Sign-On を使用する場合は、この設定を Red Hat Single Sign-On JWT の有効期限から 1 分引いた値に設定することが推奨されます。たとえば、Red Hat Single Sign-On で有効期限を 5 分に設定する場合は、以下の設定オプションを 4 分に設定する必要があります。

表5.10 HTTP Basic クライアント認証情報キャッシュの有効期限の設定
環境変数Java システムプロパティーデフォルト値

CLIENT_CREDENTIALS_BASIC_CACHE_EXPIRATION

registry.auth.basic-auth-client-credentials.cache-expiration

Integer

10

Apicurio Registry のロールベースの認可

次のオプションを true に設定して、Apicurio Registry でロールベースの認可を有効にすることができます。

表5.11 Apicurio Registry ロールベース認証の設定
環境変数Java システムプロパティーデフォルト値

AUTH_ENABLED

registry.auth.enabled

Boolean

false

ROLE_BASED_AUTHZ_ENABLED

registry.auth.role-based-authorization

Boolean

false

次に、ユーザーの認証トークンに含まれるロール (Red Hat Single Sign-On を使用した認証時に付与されるロールなど) を使用するか、Apicurio Registry によって内部的に管理されるロールマッピングを使用するように、ロールベースの認可を設定できます。

Red Hat Single Sign-On で割り当てられたロールを使用する

Red Hat Single Sign-On によって割り当てられたロールを使用できるようにするには、以下の環境変数を設定します。

表5.12 Red Hat Single Sign-On を使用した Apicurio Registry ロールベース認証の設定
環境変数説明デフォルト

ROLE_BASED_AUTHZ_SOURCE

token に設定すると、ユーザーのロールは認証トークンから取得されます。

String

トークン (token)

REGISTRY_AUTH_ROLES_ADMIN

ユーザーが管理者であることを示すロールの名前。

String

sr-admin

REGISTRY_AUTH_ROLES_DEVELOPER

ユーザーが開発者であることを示すロールの名前。

String

sr-developer

REGISTRY_AUTH_ROLES_READONLY

ユーザーが読み取り専用アクセス権を持っていることを示すロールの名前。

String

sr-readonly

Apicurio Registry が Red Hat Single Sign-On のロールを使用するように設定されている場合は、Apicurio Registry ユーザーを Red Hat Single Sign-On の以下のユーザーロールの少なくとも 1 つに割り当てる必要があります。ただし、表5.12「Red Hat Single Sign-On を使用した Apicurio Registry ロールベース認証の設定」 の環境変数を使用して別のユーザーロール名を設定できます。

表5.13 認証および認可のための Apicurio Registry ロール
ロール名アーティファクトの読み取りアーティファクトの書き込みグローバルルール説明

sr-admin

はい

すべての作成、読み取り、更新、および削除操作へのフルアクセス。

sr-developer

はい

グローバルルールの設定およびインポート/エクスポートを除く、操作の作成、読み取り、更新、および削除へのアクセス。このロールは、アーティファクト固有のルールのみを設定できます。

sr-readonly

いいえ

読み取りおよび検索操作のみへのアクセス。このロールはルールを設定できません。

Apicurio Registry でロールを直接管理する

Apicurio Registry によって内部的に管理されるロールの使用を有効にするには、次の環境変数を設定します。

表5.14 内部ロールマッピングを使用した Apicurio Registry ロールベースの認可の設定
環境変数説明デフォルト

ROLE_BASED_AUTHZ_SOURCE

application に設定すると、ユーザーロールは Apicurio Registry によって内部的に管理されます。

String

トークン (token)

内部てkに管理されたロールマッピングを使用する場合は、Apicurio Registry REST API の /admin/roleMappings エンドポイントを使用して、ユーザーにロールを割り当てることができます。詳細は、Apicurio Registry REST API のドキュメント を参照してください。

ユーザーに付与できるロールは、ADMINDEVELOPER、または READ_ONLY のいずれかだけです。管理者権限を持つユーザーのみが、他のユーザーにアクセス権を付与できます。

Apicurio Registry の管理者オーバーライド設定

Apicurio Registry にはデフォルトの管理者ユーザーがいないため、通常、ユーザーが管理者として識別されるように別の方法を設定すると便利です。次の環境変数を使用して、この管理オーバーライド機能を設定できます。

表5.15 Apicurio Registry admin-override の設定
環境変数説明デフォルト

REGISTRY_AUTH_ADMIN_OVERRIDE_ENABLED

管理オーバーライド機能を有効にします。

String

false

REGISTRY_AUTH_ADMIN_OVERRIDE_FROM

管理オーバーライド情報を探す場所。現在 token のみがサポートされています。

String

トークン (token)

REGISTRY_AUTH_ADMIN_OVERRIDE_TYPE

ユーザーが管理者かどうかを判断するために使用される情報の種類。値は FROM 変数の値によって異なります。たとえば、FROM が token の場合は role または claim です。

String

role

REGISTRY_AUTH_ADMIN_OVERRIDE_ROLE

ユーザーが管理者であることを示すロールの名前。

String

sr-admin

REGISTRY_AUTH_ADMIN_OVERRIDE_CLAIM

管理オーバーライドを決定するために使用する JWT トークンクレームの名前。

String

org-admin

REGISTRY_AUTH_ADMIN_OVERRIDE_CLAIM_VALUE

CLAIM 変数によって示される JWT トークンクレームの値は、ユーザーが管理オーバーライドを付与されるためのものでなければなりません。

String

true

たとえば、この管理オーバーライド機能を使用して、sr-admin ロールを Red Hat Single Sign-On の 1 人のユーザーに割り当て、そのユーザーに admin ロールを付与できます。そのユーザーは、/admin/roleMappings REST API (または関連する UI) を使用して、追加のユーザー (追加の管理者を含む) にロールを付与できます。

Apicurio Registry 所有者のみの許可

以下のオプションを true に設定して、Apicurio Registry 内のアーティファクトまたはアーティファクトグループの更新に対して所有者のみの許可を有効にすることができます。

表5.16 所有者のみの認可の設定
環境変数Java システムプロパティーデフォルト値

AUTH_ENABLED

registry.auth.enabled

Boolean

false

REGISTRY_AUTH_OBAC_ENABLED

registry.auth.owner-only-authorization

Boolean

false

REGISTRY_AUTH_OBAC_LIMIT_GROUP_ACCESS

registry.auth.owner-only-authorization.limit-group-access

Boolean

false

所有者のみの許可が有効になっている場合は、アーティファクトを作成したユーザーのみがそのアーティファクトを変更または削除できます。

所有者のみの許可とグループの所有者のみの許可の両方が有効になっている場合は、アーティファクトグループを作成したユーザーのみが、そのアーティファクトグループへの書き込みアクセス権 (そのグループのアーティファクトを追加または削除するなど) を持ちます。

Apicurio Registry の認証済み読み取りアクセス

認証済み読み取りアクセスオプションが有効になっている場合、Apicurio Registry は、ユーザーロールに関係なく、同じ組織内の認証済みユーザーからのリクエストに対して、少なくとも読み取り専用アクセスを許可します。

認証された読み取りアクセスを有効にするには、まずロールベースの認可を有効にしてから、次のオプションが true に設定されていることを確認する必要があります。

表5.17 認証済み読み取りアクセスの設定
環境変数Java システムプロパティーデフォルト値

AUTH_ENABLED

registry.auth.enabled

Boolean

false

REGISTRY_AUTH_AUTHENTICATED_READS_ENABLED

registry.auth.authenticated-read-access.enabled

Boolean

false

詳細は、「Apicurio Registry のロールベースの認可」 を参照してください。

Apicurio Registry の匿名の読み取り専用アクセス

2 つの主要な認証タイプ (ロールベースの認証と所有者ベースの認証) に加えて、Apicurio Registry は匿名の読み取り専用アクセスオプションをサポートしています。

認証認証情報のない REST API 呼び出しなどの匿名ユーザーが REST API への読み取り専用呼び出しを行うことを許可するには、次のオプションを true に設定します。

表5.18 匿名の読み取り専用アクセスの設定
環境変数Java システムプロパティーデフォルト値

AUTH_ENABLED

registry.auth.enabled

Boolean

false

REGISTRY_AUTH_ANONYMOUS_READ_ACCESS_ENABLED

registry.auth.anonymous-read-access.enabled

Boolean

false

関連情報

5.5. OpenShift クラスター内から Apicurio Registry への HTTPS 接続の設定

以下の手順では、OpenShift クラスター内から HTTPS 接続のポートを公開するように Apicurio Registry デプロイメントを設定する方法を説明します。

警告

このような接続は、クラスター外部で直接利用できません。ルーティングはホスト名に基づいており、HTTPS 接続の場合はエンコードされます。そのため、エッジターミネーションまたはその他の設定は必要です。「OpenShift クラスター外から Apicurio Registry への HTTPS 接続の設定」 を参照してください。

前提条件

  • Apicurio Registry Operator がインストールされている。

手順

  1. 自己署名証明書を使用して keystore を生成します。独自の証明書を使用している場合は、この手順を省略できます。

    openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout tls.key -out tls.crt
  2. 証明書と秘密鍵を保持する新しいシークレットを作成します。

    1. OpenShift Web コンソールの左側のナビゲーションメニューで、Workloads > Secrets > Create Key/Value Secret とクリックします。
    2. 次の値を使用します。
      名前: https-cert-secret
      キー 1: tls.key
      値 1: tls.key (アップロードされたファイル)
      キー 2: tls.crt
      値 2: tls.crt (アップロードされたファイル)

    または、次のコマンドを使用してシークレットを作成します。

    oc create secret generic https-cert-secret --from-file=tls.key --from-file=tls.crt
  3. Apicurio Registry デプロイメントの ApicurioRegistry CR の spec.configuration.security.https セクションを編集します。次に例を示します。

    apiVersion: registry.apicur.io/v1
    kind: ApicurioRegistry
    metadata:
      name: example-apicurioregistry
    spec:
      configuration:
        # ...
        security:
          https:
            secretName: https-cert-secret
  4. 接続が機能していることを確認します。

    1. SSH を使用してクラスターの Pod に接続します (Apicurio Registry Pod を使用できます)。

      oc rsh example-apicurioregistry-deployment-6f788db977-2wzpw
    2. Serviceリソースから Apicurio Registry Pod のクラスター IP を見つけます (Web コンソールの Location 列を参照)。その後、テスト要求を実行します (自己署名証明書を使用するので、セキュアでないフラグが必要になります)。

      curl -k https://172.30.230.78:8443/health
注記

HTTPS 証明書とキーを含む Kubernetes シークレットでは、指定された値に tls.crt および tls.key という名前を使用する必要があります。これは現在設定できません。

HTTP の無効化

このセクションの手順を使用して HTTPS を有効にした場合は、spec.security.https.disableHttptrue に設定することで、デフォルトの HTTP 接続を無効にすることもできます。これにより、Apicurio Registry Pod コンテナー、Service、および NetworkPolicy (存在する場合) から HTTP ポート 8080 が削除されます。

重要なのは、Apicurio Registry Operator が現在 Ingress での HTTPS の設定をサポートしていないため、Ingress も削除されることです。ユーザーは HTTPS 接続用の Ingress を手動で作成する必要があります。

5.6. OpenShift クラスター外から Apicurio Registry への HTTPS 接続の設定

以下の手順では、OpenShift クラスター外からの接続に対して HTTPS エッジターミネーションを使用したルートを公開するために Apicurio Registry デプロイメントを設定する方法を説明します。

前提条件

手順

  1. Apicurio Registry Operator によって作成される HTTP ルートの他に、2 つ目の Route を追加します。以下に例を示します。

    kind: Route
    apiVersion: route.openshift.io/v1
    metadata:
      [...]
      labels:
        app: example-apicurioregistry
        [...]
    spec:
      host: example-apicurioregistry-default.apps.example.com
      to:
        kind: Service
        name: example-apicurioregistry-service-9whd7
        weight: 100
      port:
        targetPort: 8080
      tls:
        termination: edge
        insecureEdgeTerminationPolicy: Redirect
      wildcardPolicy: None
    注記

    insecureEdgeTerminationPolicy: Redirect 設定プロパティーが設定されていることを確認してください。

    証明書を指定しない場合、OpenShift はデフォルトを使用します。または、以下のコマンドを使用して、カスタムの自己署名証明書を生成することもできます。

    openssl genrsa 2048 > tls.key &&
    openssl req -new -x509 -nodes -sha256 -days 365 -key tls.key -out tls.crt

    次に、OpenShift CLI を使用してルートを作成します。

    oc create route edge \
      --service=example-apicurioregistry-service-9whd7 \
      --cert=tls.crt --key=tls.key \
      --hostname=example-apicurioregistry-default.apps.example.com \
      --insecure-policy=Redirect \
      -n default

第6章 Apicurio Registry デプロイメントの設定と管理

本章では、OpenShift での Apicurio Registry デプロイメントのオプションの設定および管理方法について説明します。

6.1. OpenShift での Apicurio Registry ヘルスチェックの設定

liveness および readiness プローブのオプションの環境変数を設定して、OpenShift の Apicurio Registry サーバーの健全性を監視できます。

  • アプリケーションが進行可能な場合は liveness プローブ のテスト。アプリケーションが進行不可能な場合、OpenShift は障害のある Pod を自動的に再起動します。
  • アプリケーションが要求を処理する準備ができている場合はreadiness プローブ のテスト。アプリケーションが準備できていない場合、リクエストに圧倒されてしまい、プローブが失敗した期間は OpenShift がリクエストの送信を停止します。他の Pod が OK の場合は、引き続き要求を受け取ります。
重要

liveness および readiness 環境変数のデフォルト値はほとんどの場合を想定して設計されており、環境で必要とされる場合にのみ変更する必要があります。デフォルトへの変更は、ハードウェア、ネットワーク、および保存されたデータ量によって異なります。これらの値は、不要なオーバーヘッドを回避するために、できるだけ低く抑える必要があります。

前提条件

  • クラスター管理者として OpenShift クラスターにアクセスできる。
  • OpenShift に Apicurio Registry がすでにインストールされている必要があります。
  • AMQ Streams または PostgreSQL で選択した Apicurio Registry ストレージがインストールされ、設定されている。

手順

  1. OpenShift Container Platform Web コンソールで、クラスター管理者権限を持つアカウントを使用してログインします。
  2. Installed Operators > Red Hat Integration - Service Registry Operator をクリックします。
  3. ApicurioRegistry タブで、example-apicurioregistry などのデプロイメントの Operator カスタムリソースをクリックします。
  4. メインの概要ページで、Deployment Name セクションと Apicurio Registry デプロイメントの対応する DeploymentConfig 名を見つけます (例: example-apicurioregistry)。
  5. 左側のナビゲーションメニューでWorkloads > Deployment Configs をクリックし、DeploymentConfig 名を選択します。
  6. Environment タブをクリックして、Single values env セクションに環境変数を入力します。以下に例を示します。

    • NAME: LIVENESS_STATUS_RESET
    • VALUE: 350
  7. 下部にある Save をクリックします。

    代わりに、OpenShift oc コマンドを使用して、これらの手順を実行することもできます。詳細は、OpenShift CLI のドキュメント を参照してください。

6.2. Apicurio Registry ヘルスチェックの環境変数

このセクションでは、OpenShift の Apicurio Registry ヘルスチェックに使用できる環境変数について説明します。これには、OpenShift 上の Apicurio Registry サーバーの健全性を監視する liveness および readiness プローブが含まれます。手順の例は、「OpenShift での Apicurio Registry ヘルスチェックの設定」 を参照してください。

重要

以下の環境変数は参考としてのみ提供されます。デフォルト値はほとんどの場合を想定して設計されており、環境に必要な場合のみ変更する必要があります。デフォルトへの変更は、ハードウェア、ネットワーク、および保存されたデータ量によって異なります。これらの値は、不要なオーバーヘッドを回避するために、できるだけ低く抑える必要があります。

liveness 環境変数
表6.1 Apicurio Registry liveness プローブの環境変数
名前説明デフォルト

LIVENESS_ERROR_THRESHOLD

liveness プローブが失敗するまでに発生する可能性のある liveness の問題またはエラーの数。

Integer

1

LIVENESS_COUNTER_RESET

しきい値となる数のエラーが発生する期間。たとえば、この値が 60 でしきい値が 1 の場合、1 分間に 2 件のエラーが発生するとチェックが失敗します。

60

LIVENESS_STATUS_RESET

liveness プローブが OK ステータスにリセットされるために、エラーなしで経過する必要のある秒数。

300

LIVENESS_ERRORS_IGNORED

無視された liveness 例外のコンマ区切りリスト。

String

io.grpc.StatusRuntimeException,org.apache.kafka.streams.errors.InvalidStateStoreException

注記

OpenShift は liveness チェックに失敗した Pod を自動的に再起動するため、liveness 設定は readiness 設定とは異なり、OpenShift 上の Apicurio Registry の動作に直接影響を与えません。

readiness 環境変数
表6.2 Apicurio Registry readiness プローブの環境変数
名前説明デフォルト

READINESS_ERROR_THRESHOLD

readiness プローブが失敗するまでに発生する可能性のある readiness の問題またはエラーの数。

Integer

1

READINESS_COUNTER_RESET

しきい値となる数のエラーが発生する期間。たとえば、この値が 60 でしきい値が 1 の場合、1 分間に 2 件のエラーが発生するとチェックが失敗します。

60

READINESS_STATUS_RESET

liveness プローブが OK ステータスにリセットされるために、エラーなしで経過する必要のある秒数。ここでは、Pod が通常の動作に戻るまでの準備ができていない状態の期間を意味します。

300

READINESS_TIMEOUT

readiness は 2 つの操作のタイムアウトを追跡します。

  • ストレージリクエストが完了するまでの時間
  • HTTP REST API リクエストが応答を返すまでの時間

これらの操作に設定されたタイムアウトよりも時間がかかった場合、これは readiness 問題またはエラーとしてカウントされます。この値は、両方の操作のタイムアウトを制御します。

5

6.3. Apicurio Registry 環境変数の管理

Apicurio Registry Operator は最も一般的な Apicurio Registry 設定を管理しますが、まだサポートされていないオプションがいくつかあります。ApicurioRegistry CR で高レベル設定オプションを使用できない場合は、環境変数を使用して調整できます。これらを更新するには、spec.configuration.env フィールドの ApicurioRegistry CR に環境変数を直接設定します。続いてこれらは、Apicurio Registry の Deployment リソースに転送されます。

手順

Apicurio Registry 環境変数は、OpenShift Web コンソールまたは CLI を使用して管理できます。

OpenShift Web コンソール
  1. Installed Operators タブを選択してから、Red Hat Integration - Service Registry Operator を選択します。
  2. ApicurioRegistry タブで、Apicurio Registry デプロイメントの ApicurioRegistry CR をクリックします。
  3. YAML タブをクリックし、必要に応じて spec.configuration.env セクションを編集します。次の例は、デフォルトのグローバルコンテンツルールを設定する方法を示しています。

    apiVersion: registry.apicur.io/v1
    kind: ApicurioRegistry
    metadata:
      name: example-apicurioregistry
    spec:
      configuration:
        # ...
        env:
          - name: REGISTRY_RULES_GLOBAL_VALIDITY
            value: FULL # One of: NONE, SYNTAX_ONLY, FULL
          - name: REGISTRY_RULES_GLOBAL_COMPATIBILITY
            value: FULL # One of: NONE, BACKWARD, BACKWARD_TRANSITIVE, FORWARD, FORWARD_TRANSITIVE, FULL, FULL_TRANSITIVE
OpenShift CLI
  1. Apicurio Registry がインストールされているプロジェクトを選択します。
  2. oc get apicurioregistry を実行して、ApicurioRegistry CR のリストを取得します
  3. 設定する Apicurio Registry インスタンスを表す CR で oc edit apicurioregistry を実行します。
  4. spec.configuration.env セクションで、環境変数を追加または変更します。

    Apicurio Registry Operator は、spec.configuration.env フィールドですでに明示的に指定されている環境変数を設定しようとする場合があります。環境変数設定に競合する値がある場合、Apicurio Registry Operator によって設定された値が優先されます。

    この競合を回避するには、機能の高レベル設定を使用するか、明示的に指定された環境変数のみを使用します。以下は、競合する設定の例です。

    apiVersion: registry.apicur.io/v1
    kind: ApicurioRegistry
    metadata:
      name: example-apicurioregistry
    spec:
      configuration:
        # ...
        ui:
          readOnly: true
        env:
          - name: REGISTRY_UI_FEATURES_READONLY
            value: false

    この設定により、Apicurio Registry Web コンソールが読み取り専用モードになります。

6.4. PodTemplate を使用した Apicurio Registry デプロイメントの設定

重要

これは、テクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。

テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

ApicurioRegistry CRD には spec.deployment.podTemplateSpecPreview フィールドが含まれており、このフィールドは Kubernetes Deployment リソースの spec.template フィールドと同じ構造体 (PodTemplateSpec 構造体) を持っています。

いくつかの制限がありますが、Apicurio Registry Operator は、このフィールドのデータを Apicurio Registry デプロイメントの、対応するフィールドに転送します。これにより、Apicurio Registry Operator が各ユースケースをネイティブにサポートする必要がなく、設定の柔軟性が向上します。

次の表には、Apicurio Registry Operator によって受け入れられず、設定エラーが発生するサブフィールドのリストが含まれています。

表6.3 podTemplateSpecPreview サブフィールドにおける制限
podTemplateSpecPreview サブフィールドステータス詳細

metadata.annotations

alternative exists

spec.deployment.metadata.annotations

metadata.labels

alternative exists

spec.deployment.metadata.labels

spec.affinity

alternative exists

spec.deployment.affinity

spec.containers[*]

warning

Apicurio Registry コンテナーを設定するには、name: registry を使用する必要があります

spec.containers[name = "registry"].env

alternative exists

spec.configuration.env

spec.containers[name = "registry"].image

reserved

-

spec.imagePullSecrets

alternative exists

spec.deployment.imagePullSecrets

spec.tolerations

alternative exists

spec.deployment.tolerations

警告

podTemplateSpecPreview でフィールドを設定する場合は、Apicurio Registry Deployment で直接設定したかのように、その値が有効である必要があります。Apicurio Registry Operator は、指定された値を変更する可能性がありますが、無効な値を修正したり、デフォルト値が存在することを確認したりすることはありません。

6.5. Apicurio Registry Web コンソールを設定する

オプションの環境変数を設定して、デプロイメント環境専用に Apicurio Registry Web コンソールを設定したり、その動作をカスタマイズしたりできます。

前提条件

  • Apicurio Registry はすでにインストールされています。
Web コンソールのデプロイメント環境の設定

ブラウザーで Apicurio Registry Web コンソールにアクセスすると、いくつかの初期設定が読み込まれます。次の設定が重要です。

  • コア Apicurio Registry サーバー REST API の URL
  • Apicurio Registry Web コンソールクライアントの URL

通常、Apicurio Registry はこれらの設定を自動的に検出して生成しますが、一部のデプロイメント環境ではこの自動検出が失敗する場合があります。その場合には、環境のこれらの URL を明示的に設定するように環境変数を設定できます。

手順

以下の環境変数を設定し、デフォルトの URL を上書きします。

  • REGISTRY_UI_CONFIG_APIURL: コア Apicurio Registry サーバー REST API の URL を指定します。例: https://registry.my-domain.com/apis/registry
  • REGISTRY_UI_CONFIG_UIURL: Apicurio Registry Web コンソールクライアントの URL を指定します。たとえば、https://registry.my-domain.com/ui
読み取り専用モードでの Web コンソールの設定

オプション機能として、Apicurio Registry の Web コンソールを読み取り専用モードに設定することができます。このモードでは、Apicurio Registry Web コンソールでユーザーが登録されたアーティファクトを変更できる機能がすべて無効になります。たとえば、これには以下が含まれます。

  • アーティファクトの作成
  • 新しいアーティファクトバージョンのアップロード
  • アーティファクトメタデータの更新
  • アーティファクトの削除

手順

次の環境変数を設定します。

  • REGISTRY_UI_FEATURES_READONLY: true に設定すると、読み取り専用モードが有効になります。デフォルトは false です。

6.6. Apicurio Registry ログの設定

実行時に Apicurio Registry のログ設定を設定できます。Apicurio Registry は、詳細なロギングのために特定のロガーのログレベルを設定する REST エンドポイントを提供します。本セクションでは、Apicurio Registry /admin REST API を使用して、実行時に Apicurio Registry ログレベルを表示および設定する方法を説明します。

前提条件

  • Apicurio Registry インスタンスにアクセスするための URL を取得するか、OpenShift にデプロイした場合に Apicurio Registry ルートを取得します。この簡単な例では、 localhost:8080 の URL を使用しています。

手順

  1. この curl コマンドを使用して、ロガー io.apicurio.registry.storage の現在のログレベルを取得します。

    $ curl -i localhost:8080/apis/registry/v2/admin/loggers/io.apicurio.registry.storage
    HTTP/1.1 200 OK
    [...]
    Content-Type: application/json
    {"name":"io.apicurio.registry.storage","level":"INFO"}
  2. この curl コマンドを使用して、ロガー io.apicurio.registry.storage のログレベルを DEBUG に変更します。

    $ curl -X PUT -i -H "Content-Type: application/json" --data '{"level":"DEBUG"}' localhost:8080/apis/registry/v2/admin/loggers/io.apicurio.registry.storage
    HTTP/1.1 200 OK
    [...]
    Content-Type: application/json
    {"name":"io.apicurio.registry.storage","level":"DEBUG"}
  3. この curl コマンドを使用して、ロガー io.apicurio.registry.storage のログレベルをデフォルト値に戻します。

    $ curl -X DELETE -i localhost:8080/apis/registry/v2/admin/loggers/io.apicurio.registry.storage
    HTTP/1.1 200 OK
    [...]
    Content-Type: application/json
    {"name":"io.apicurio.registry.storage","level":"INFO"}

6.7. Apicurio Registry イベントソーシングの設定

重要

これは、テクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。

テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

Apicurio Registry は、変更がレジストリーに加えられたときにイベントを送信するように設定できます。たとえば、Apicurio Registry は、スキーマまたは API アーティファクト、グループ、コンテンツルールが作成、更新、削除されたときにイベントをトリガーできます。この種の変更については、アプリケーションやサードパーティーのインテグレーションにイベントを送信するように Apicurio Registry を設定できます。

イベントの転送に使用できるさまざまなプロトコルがあります。現在実装されているプロトコルは HTTP および Apache Kafka です。ただし、プロトコルに関係なく、イベントは CNCF CloudEvents 仕様を使用して送信されます。Java システムプロパティーまたは同等の環境変数を使用して、Apicurio Registry イベントソーシングを設定できます。

Apicurio Registry イベントタイプ

すべてのイベントタイプは、io.apicurio.registry.events.dto.RegistryEventType で定義されています。たとえば、これらには以下のイベントタイプが含まれます。

  • io.apicurio.registry.artifact-created
  • io.apicurio.registry.artifact-updated
  • io.apicurio.registry.artifact-state-changed
  • io.apicurio.registry.artifact-rule-created
  • io.apicurio.registry.global-rule-created
  • io.apicurio.registry.group-created

前提条件

  • Apicurio Registry クラウドイベントの送信先となるアプリケーションが必要です。たとえば、カスタムアプリケーションやサードパーティーアプリケーションなどです。
HTTP を使用した Apicurio Registry イベントソーシングの設定

このセクションの例は、http://my-app-host:8888/events で実行されているカスタムアプリケーションを示しています。

手順

  1. HTTP プロトコルを使用する場合は、以下のようにイベントをアプリケーションに送信するように Apicurio Registry を設定します。

    • registry.events.sink.my-custom-consumer=http://my-app-host:8888/events
  2. 必要に応じて、複数のイベントコンシューマーを以下のように設定できます。

    • registry.events.sink.my-custom-consumer=http://my-app-host:8888/events
    • registry.events.sink.other-consumer=http://my-consumer.com/events
Apache Kafka を使用した Apicurio Registry イベントソーシングの設定

このセクションの例では、my-registry-events という名前の Kafka トピックが my-kafka-host:9092 で動作していることを示します。

手順

  1. Kafka プロトコルを使用する場合、以下のように Kafka トピックを設定します。

    • registry.events.kafka.topic=my-registry-events
  2. KAFKA_BOOTSTRAP_SERVERS 環境変数を使用して、Kafka プロデューサーを設定できます。

    • KAFKA_BOOTSTRAP_SERVERS=my-kafka-host:9092

      または、registry.events.kafka.config 接頭辞を使用して kafka プロデューサーのプロパティーを設定できます。例: registry.events.kafka.config.bootstrap.servers=my-kafka-host:9092

  3. 必要に応じて、イベントの生成に使用する Kafka トピックパーティションを設定することもできます。

    • registry.events.kafka.topic-partition=1

関連情報

第7章 Apicurio Registry Operator の設定リファレンス

本章では、Apicurio Registry Operator をデプロイするように Apicurio Registry を設定するために使用されるカスタムリソースの詳細情報を提供します。

7.1. Apicurio Registry カスタムリソース

Apicurio Registry Operator は、OpenShift 上の Apicurio Registry の単一デプロイメントを表す ApicurioRegistry custom resource (CR) を定義します。

これらのリソースオブジェクトはユーザーによって作成および維持され、Apicurio Registry のデプロイおよび設定方法を Apicurio Registry Operator に指示します。

ApicurioRegistry CR の例

次のコマンドは、ApicurioRegistry リソースを表示します。

oc get apicurioregistry
oc edit apicurioregistry example-apicurioregistry
apiVersion: registry.apicur.io/v1
kind: ApicurioRegistry
metadata:
  name: example-apicurioregistry
  namespace: demo-kafka
  # ...
spec:
  configuration:
    persistence: kafkasql
    kafkasql:
      bootstrapServers: 'my-cluster-kafka-bootstrap.demo-kafka.svc:9092'
  deployment:
    host: >-
      example-apicurioregistry.demo-kafka.example.com
status:
  conditions:
  - lastTransitionTime: "2021-05-03T10:47:11Z"
    message: ""
    reason: Reconciled
    status: "True"
    type: Ready
  info:
    host: example-apicurioregistry.demo-kafka.example.com
  managedResources:
  - kind: Deployment
    name: example-apicurioregistry-deployment
    namespace: demo-kafka
  - kind: Service
    name: example-apicurioregistry-service
    namespace: demo-kafka
  - kind: Ingress
    name: example-apicurioregistry-ingress
    namespace: demo-kafka
重要

デフォルトで、Apicurio Registry Operator は独自のプロジェクト namespace のみを監視します。したがって、Operator を手動でデプロイする場合は、同じ namespace に ApicurioRegistry CR を作成する必要があります。Operator Deployment リソースの WATCH_NAMESPACE 環境変数を更新することで、この動作を修正することができます。

7.2. Apicurio Registry CR スペック

spec は、オペレーターがアーカイブするための望ましい状態または設定を提供するために使用される ApicurioRegistry CR の一部です。

ApicurioRegistry CR 仕様コンテンツ

以下のブロック例には、可能な spec 設定オプションの完全なツリーが含まれます。フィールドによっては、必須ではないものや、同時に定義してはいけないものもあります。

spec:
  configuration:
    persistence: <string>
    sql:
      dataSource:
        url: <string>
        userName: <string>
        password: <string>
    kafkasql:
      bootstrapServers: <string>
      security:
        tls:
          truststoreSecretName: <string>
          keystoreSecretName: <string>
        scram:
          mechanism: <string>
          truststoreSecretName: <string>
          user: <string>
          passwordSecretName: <string>
    ui:
      readOnly: <string>
    logLevel: <string>
    registryLogLevel: <string>
    security:
      keycloak:
        url: <string>
        realm: <string>
        apiClientId: <string>
        uiClientId: <string>
      https:
        disableHttp: <bool>
        secretName: <string>
    env: <k8s.io/api/core/v1 []EnvVar>
  deployment:
    replicas: <int32>
    host: <string>
    affinity: <k8s.io/api/core/v1 Affinity>
    tolerations: <k8s.io/api/core/v1 []Toleration>
    imagePullSecrets: <k8s.io/api/core/v1 []LocalObjectReference>
    metadata:
      annotations: <map[string]string>
      labels: <map[string]string>
    managedResources:
      disableIngress: <bool>
      disableNetworkPolicy: <bool>
	  disablePodDisruptionBudget: <bool>
    podTemplateSpecPreview: <k8s.io/api/core/v1 PodTemplateSpec>

以下の表は、各設定オプションについて説明しています。

表7.1 ApicurioRegistry CR 仕様設定オプション
設定オプションデフォルト値説明

configuration

-

-

Apicurio Registry アプリケーションの設定セクション

configuration/persistence

string

required

ストレージバックエンド。sql の 1 つ、kafkasql

configuration/sql

-

-

SQL ストレージバックエンドの設定

configuration/sql/dataSource

-

-

SQL ストレージバックエンドのデータベース接続設定

configuration/sql/dataSource/url

string

required

データベース接続 URL 文字列

configuration/sql/dataSource/userName

string

required

データベースコネクションユーザー

configuration/sql/dataSource/password

string

empty

データベース接続パスワード

configuration/kafkasql

-

-

Kafka ストレージバックエンドの設定

configuration/kafkasql/bootstrapServers

string

required

Streams ストレージバックエンドの Kafka ブートストラップサーバー URL。

configuration/kafkasql/security/tls

-

-

Kafka ストレージバックエンドの TLS 認証を設定するセクション。

configuration/kafkasql/security/tls/truststoreSecretName

string

required

Kafka の TLS トラストストアが含まれるシークレットの名前

configuration/kafkasql/security/tls/keystoreSecretName

string

required

ユーザー TLS キーストアを含むシークレットの名前

configuration/kafkasql/security/scram/truststoreSecretName

string

required

Kafka の TLS トラストストアが含まれるシークレットの名前

configuration/kafkasql/security/scram/user

string

required

SCRAM ユーザー名

configuration/kafkasql/security/scram/passwordSecretName

string

required

SCRAM ユーザーパスワードが含まれるシークレットの名前

configuration/kafkasql/security/scram/mechanism

string

SCRAM-SHA-512

SASL メカニズム

configuration/ui

-

-

Apicurio Registry Web コンソールの設定

configuration/ui/readOnly

string

false

Apicurio Registry Web コンソールを読み取り専用モードに設定する

configuration/logLevel

string

INFO

Apicurio 以外のコンポーネントおよびライブラリーの Apicurio Registry ログレベル。INFO の 1 つ、DEBUG

configuration/registryLogLevel

string

INFO

Apicurio アプリケーションコンポーネントの Apicurio Registry ログレベル (Apicurio 以外のコンポーネントおよびライブラリーを除く)。INFO の 1 つ、DEBUG

configuration/security

-

-

Apicurio Registry Web コンソールと REST API のセキュリティー設定

configuration/security/keycloak

-

-

Red Hat Single Sign-On を使用した Web コンソールと REST API のセキュリティー設定

configuration/security/keycloak/url

string

required

Red Hat Single Sign-On URL

configuration/security/keycloak/realm

string

required

Red Hat Single Sign-On レルム

configuration/security/keycloak/apiClientId

string

registry-client-api

REST API 用の Red Hat Single Sign-On クライアント

configuration/security/keycloak/uiClientId

string

registry-client-ui

Web コンソール用の Red Hat Single Sign-On クライアント

configuration/security/https

-

-

HTTPS の設定。詳細は、OpenShift クラスター内からの Apicurio Registry への HTTPS 接続の設定 を参照してください。

configuration/security/https/sercretName

string

empty

HTTPS 証明書とキーを含む Kubernetes シークレットの名前。それぞれ tls.crttls.key という名前にする必要があります。このフィールドを設定すると HTTPS が有効になり、その逆も同様です。

configuration/security/https/disableHttp

bool

false

HTTP ポートと Ingress を無効にします。前提条件として HTTPS を有効にする必要があります。

configuration/env

k8s.io/api/core/v1 []EnvVar

Apicurio Registry Pod に提供される環境変数のリストを設定します。詳細は、Apicurio Registry 環境変数の管理 を参照してください。

デプロイメント

-

-

Apicurio Registry デプロイメント設定のセクション

deployment/replicas

正の整数

1

デプロイする Apicurio Registry Pod の数

deployment/host

string

自動生成

Apicurio Registry コンソールと API が利用可能なホスト/URL。可能な場合、Apicurio Registry Operator は、クラスタールーターの設定に基づいて正しい値を決定しようとします。値は一度だけ自動生成されるため、ユーザーは後で上書きすることができます。

deployment/affinity

k8s.io/api/core/v1 Affinity

Apicurio Registry デプロイメントアフィニティー設定

deployment/tolerations

k8s.io/api/core/v1 []Toleration

Apicurio Registry のデプロイ容認の設定

deployment/imagePullSecrets

k8s.io/api/core/v1 []LocalObjectReference

Apicurio Registry デプロイメント用のイメージプルシークレットの設定

deployment/metadata

-

-

Apicurio Registry Pod のラベルまたはアノテーションのセットを設定します。

deployment/metadata/labels

map[string]string

Apicurio Registry Pod のラベルのセットを設定します。

deployment/metadata/annotations

map[string]string

Apicurio Registry Pod の一連のアノテーションを設定します。

deployment/managedResources

-

-

Apicurio Registry Operator が Kubernetes リソースを管理する方法を設定するセクション。詳細は、Apicurio Registry 管理リソース を参照してください。

deployment/managedResources/disableIngress

bool

false

設定されている場合、Operator は Apicurio Registry デプロイメント用の Ingress リソースを作成および管理しません。

deployment/managedResources/disableNetworkPolicy

bool

false

設定されている場合、Operator は Apicurio Registry デプロイメント用の NetworkPolicy リソースを作成および管理しません。

deployment/managedResources/disablePodDisruptionBudget

bool

false

設定されている場合、Operator は Apicurio Registry デプロイメント用の PodDisruptionBudget リソースを作成および管理しません。

deployment/podTemplateSpecPreview

k8s.io/api/core/v1 PodTemplateSpec

Apicurio Registry デプロイメントリソースの一部を設定します。詳細は、 PodTemplate を使用した Apicurio Registry デプロイメントの設定 を参照してください。

注記

オプションが 必須 とされている場合は、有効になっている他の設定オプションの条件である可能性があります。空の値は受け入れられる可能性がありますが、Operator は指定されたアクションを実行しません。

7.3. Apicurio Registry の CR ステータス

status は、Apicurio Registry Operator によって管理される CR のセクションであり、現在のデプロイメントとアプリケーションの状態の説明が含まれています。

ApicurioRegistry CR ステータスのコンテンツ

status セクションには、次のフィールドが含まれています。

status:
  info:
    host: <string>
  conditions: <list of:>
  - type: <string>
    status: <string, one of: True, False, Unknown>
    reason: <string>
    message: <string>
    lastTransitionTime: <string, RFC-3339 timestamp>
  managedResources: <list of:>
  - kind: <string>
    namespace: <string>
    name: <string>
表7.2 ApicurioRegistry CR status フィールド
status フィールド説明

info

-

デプロイされた Apicurio Registry に関する情報が含まれるセクション。

info/host

string

Apicurio Registry UI および REST API にアクセスできる URL。

conditions

-

Apicurio Registry のステータス、またはそのデプロイメントに関連した operator のステータスを報告する条件の一覧。

conditions/type

string

条件の型。

conditions/status

string

状態のステータス、 TrueFalseUnknown のいずれか。

conditions/reason

string

条件の最後の遷移の理由を示すプログラムによる識別子。

conditions/message

string

遷移の詳細を示す人が判読できるメッセージ。

conditions/lastTransitionTime

string

最後にある状態から別の状態に遷移した時間。

managedResources

-

Apicurio Registry Operator が管理する OpenShift リソースの一覧

managedResources/kind

string

リソースの種類。

managedResources/namespace

string

リソースの namespace。

managedResources/name

string

リソース名。

7.4. Apicurio Registry が管理するリソース

Apicurio Registry のデプロイ時に Apicurio Registry Operator によって管理されるリソースは次のとおりです。

  • Deployment
  • Ingress (および Route)
  • NetworkPolicy
  • PodDisruptionBudget
  • サービス

Apicurio Registry Operator による一部のリソースの作成と管理を無効にして、手動で設定可能にすることができます。これにより、Apicurio Registry Operator が現在サポートしていない機能を使用する際の柔軟性が向上します。

リソースタイプを無効にすると、その既存のインスタンスは削除されます。リソースを有効にすると、Apicurio Registry Operator は、app ラベル (例: app=example- apicurioregistry) を使用してリソースを検索し、その管理を開始します。それ以外の場合、Operator は新しいインスタンスを作成します。

この方法で、次のリソースタイプを無効にすることができます。

  • Ingress (および Route)
  • NetworkPolicy
  • PodDisruptionBudget

以下に例を示します。

apiVersion: registry.apicur.io/v1
kind: ApicurioRegistry
metadata:
  name: example-apicurioregistry
spec:
  deployment:
    managedResources:
      disableIngress: true
      disableNetworkPolicy: true
      disablePodDisruptionBudget: false # Can be omitted

7.5. Apicurio Registry Operator ラベル

Apicurio Registry Operator によって管理されるリソースは、通常、次のようにラベル付けされます。

表7.3 管理されたリソースの Apicurio Registry Operator ラベル
ラベル説明

app

指定された ApicurioRegistry CR の名前に基づく、リソースが属する Apicurio Registry デプロイメントの名前。

apicur.io/type

デプロイメントのタイプ: apicurio-registry または operator

apicur.io/name

デプロイの名前: app または apicurio-registry-operator と同じ値

apicur.io/version

Apicurio Registry または Apicurio Registry Operator のバージョン

app.kubernetes.io/*

アプリケーションのデプロイメントに推奨される Kubernetes ラベルのセット。

com.company および rht.*`

Red Hat 製品のメータリングラベル。

カスタムラベルとアノテーション

spec.deployment.metadata.labelsspec.deployment.metadata.annotationsフィールドを使用して、Apicurio Registry Pod にカスタムラベルとアノテーションを提供できます。次に例を示します。

apiVersion: registry.apicur.io/v1
kind: ApicurioRegistry
metadata:
  name: example-apicurioregistry
spec:
  configuration:
    # ...
  deployment:
    metadata:
      labels:
        example.com/environment: staging
      annotations:
        example.com/owner: my-team

第8章 Apicurio Registry 設定リファレンス

この章では、Apicurio Registry で利用可能な設定オプションに関する参考情報を提供します。

関連情報

8.1. Apicurio Registry 設定オプション

次の Apicurio Registry 設定オプションは、コンポーネントカテゴリーごとに利用できます。

8.1.1. api

表8.1 API 設定オプション
名前デフォルト利用可能:説明

registry.api.errors.include-stack-in-response

boolean

false

2.1.4.Final

エラー応答にスタックトレースを含める

registry.disable.apis

optional<list<string>>

 

2.0.0.Final

API の無効化

8.1.2. auth

表8.2 認証設定オプション
名前デフォルト利用可能:説明

registry.auth.admin-override.claim

string

org-admin

2.1.0.Final

認証管理者オーバーライドクレーム

registry.auth.admin-override.claim-value

string

true

2.1.0.Final

認証管理者オーバーライドクレーム値

registry.auth.admin-override.enabled

boolean

false

2.1.0.Final

有効化されている認証管理者オーバーライド

registry.auth.admin-override.from

string

トークン (token)

2.1.0.Final

認証管理者オーバーライド:

registry.auth.admin-override.role

string

sr-admin

2.1.0.Final

認証管理者オーバーライドロール

registry.auth.admin-override.type

string

role

2.1.0.Final

認証管理者オーバーライドタイプ

registry.auth.anonymous-read-access.enabled

boolean [dynamic]

false

2.1.0.Final

匿名の読み取りアクセス

registry.auth.audit.log.prefix

string

audit

2.2.6

アプリケーション監査ロギングに使用される接頭辞。

registry.auth.authenticated-read-access.enabled

boolean [dynamic]

false

2.1.4.Final

認証された読み取りアクセス

registry.auth.basic-auth-client-credentials.cache-expiration

integer

10

2.2.6.Final

デフォルトのクライアント認証情報トークンの有効期限。

registry.auth.basic-auth-client-credentials.cache-expiration-offset

integer

10

2.5.9.Final

JWT 有効期限からのクライアント認証情報トークンの有効期限オフセット。

registry.auth.basic-auth-client-credentials.enabled

boolean [dynamic]

false

2.1.0.Final

Basic 認証クライアント認証情報の有効化。

registry.auth.basic-auth.scope

optional<string>

 

2.5.0.Final

クライアント認証情報のスコープ。

registry.auth.client-id

string

 

2.0.0.Final

サーバーが認証に使用するクライアント ID。

registry.auth.client-secret

optional<string>

 

2.1.0.Final

サーバーが認証に使用するクライアントシークレット。

registry.auth.enabled

boolean

false

2.0.0.Final

認証を有効にします。

registry.auth.owner-only-authorization

boolean [dynamic]

false

2.0.0.Final

アーティファクト所有者のみの認可

registry.auth.owner-only-authorization.limit-group-access

boolean [dynamic]

false

2.1.0.Final

アーティファクトグループ所有者のみの認可

registry.auth.role-based-authorization

boolean

false

2.1.0.Final

ロールベース認可の有効化

registry.auth.role-source

string

トークン (token)

2.1.0.Final

認証ロールソース

registry.auth.role-source.header.name

string

 

2.4.3.Final

ヘッダー認可名

registry.auth.roles.admin

string

sr-admin

2.0.0.Final

認証ロール管理者

registry.auth.roles.developer

string

sr-developer

2.1.0.Final

認証ロール開発者

registry.auth.roles.readonly

string

sr-readonly

2.1.0.Final

認証ロール読み取り専用

registry.auth.tenant-owner-is-admin.enabled

boolean

true

2.1.0.Final

有効化されている auth テナントオーナー admin

registry.auth.token.endpoint

string

 

2.1.0.Final

認証サーバーの URL。

8.1.3. cache

表8.3 キャッシュ設定オプション
名前デフォルト利用可能:説明

registry.config.cache.enabled

boolean

true

2.2.2.Final

有効化されているレジストリーキャッシュ

8.1.4. ccompat

表8.4 ccompat 設定オプション
名前デフォルト利用可能:説明

registry.ccompat.legacy-id-mode.enabled

boolean [dynamic]

false

2.0.2.Final

レガシー ID モード (互換 API)

registry.ccompat.max-subjects

integer [dynamic]

1000

2.4.2.Final

返されるサブジェクトの最大数 (互換性 API)

registry.ccompat.use-canonical-hash

boolean [dynamic]

false

2.3.0.Final

正規ハッシュモード (互換性 API)

8.1.5. ダウンロード

表8.5 設定オプションのダウンロード
名前デフォルト利用可能:説明

registry.download.href.ttl

long [dynamic]

30

2.1.2.Final

ダウンロードリンクの有効期限

8.1.6. events

表8.6 イベント設定オプション
名前デフォルト利用可能:説明

registry.events.ksink

optional<string>

 

2.0.0.Final

有効化されている イベント Kafka シンク

8.1.7. health

表8.7 ヘルス設定オプション
名前デフォルト利用可能:説明

registry.liveness.errors.ignored

optional<list<string>>

 

1.2.3.Final

無視された liveness エラー

registry.metrics.PersistenceExceptionLivenessCheck.counterResetWindowDurationSec

integer

60

1.0.2.Final

永続性 liveness チェックのカウンターリセットウィンドウの期間

registry.metrics.PersistenceExceptionLivenessCheck.disableLogging

boolean

false

2.0.0.Final

永続性の liveness チェックのロギングの無効化

registry.metrics.PersistenceExceptionLivenessCheck.errorThreshold

integer

1

1.0.2.Final

永続性の liveness チェックのエラーしきい値

registry.metrics.PersistenceExceptionLivenessCheck.statusResetWindowDurationSec

integer

300

1.0.2.Final

永続 liveness チェックのステータスリセットウィンドウの期間

registry.metrics.PersistenceTimeoutReadinessCheck.counterResetWindowDurationSec

integer

60

1.0.2.Final

永続性の readiness チェックのカウンターリセットウィンドウの期間

registry.metrics.PersistenceTimeoutReadinessCheck.errorThreshold

integer

5

1.0.2.Final

永続性 readiness チェックのエラーしきい値

registry.metrics.PersistenceTimeoutReadinessCheck.statusResetWindowDurationSec

integer

300

1.0.2.Final

永続性 readiness チェックのステータスリセットウィンドウの期間

registry.metrics.PersistenceTimeoutReadinessCheck.timeoutSec

integer

15

1.0.2.Final

永続性 readiness チェックのタイムアウト

registry.metrics.ResponseErrorLivenessCheck.counterResetWindowDurationSec

integer

60

1.0.2.Final

応答 liveness チェックのカウンターリセットウィンドウの期間

registry.metrics.ResponseErrorLivenessCheck.disableLogging

boolean

false

2.0.0.Final

応答 liveness チェックのロギングの無効化

registry.metrics.ResponseErrorLivenessCheck.errorThreshold

integer

1

1.0.2.Final

応答 liveness チェックのエラーしきい値

registry.metrics.ResponseErrorLivenessCheck.statusResetWindowDurationSec

integer

300

1.0.2.Final

応答 liveness チェックのステータスリセットウィンドウの期間

registry.metrics.ResponseTimeoutReadinessCheck.counterResetWindowDurationSec

instance<integer>

60

1.0.2.Final

応答 readiness チェックのカウンターリセットウィンドウの期間

registry.metrics.ResponseTimeoutReadinessCheck.errorThreshold

instance<integer>

1

1.0.2.Final

応答 readiness チェックのエラーしきい値

registry.metrics.ResponseTimeoutReadinessCheck.statusResetWindowDurationSec

instance<integer>

300

1.0.2.Final

応答 readiness チェックのステータスリセットウィンドウの期間

registry.metrics.ResponseTimeoutReadinessCheck.timeoutSec

instance<integer>

10

1.0.2.Final

応答 readiness チェックのタイムアウト

registry.storage.metrics.cache.check-period

long

30000

2.1.0.Final

ストレージメトリクスキャッシュチェック期間

8.1.8. import

表8.8 設定オプションのインポート
名前デフォルト利用可能:説明

registry.import.url

optional<url>

 

2.1.0.Final

インポート URL

8.1.9. kafka

表8.9 kafka 設定オプション
名前デフォルト利用可能:説明

registry.events.kafka.topic

optional<string>

 

2.0.0.Final

Events Kafka トピック

registry.events.kafka.topic-partition

optional<integer>

 

2.0.0.Final

イベント Kafka トピックパーティション

8.1.10. limits

表8.10 制限設定オプション
名前デフォルト利用可能:説明

registry.limits.config.max-artifact-labels

long

-1

2.2.3.Final

最大アーティファクトラベル

registry.limits.config.max-artifact-properties

long

-1

2.1.0.Final

最大アーティファクトプロパティー

registry.limits.config.max-artifacts

long

-1

2.1.0.Final

最大アーティファクト

registry.limits.config.max-description-length

long

-1

2.1.0.Final

最大アーティファクトの説明の長さ

registry.limits.config.max-label-size

long

-1

2.1.0.Final

最大アーティファクトラベルサイズ

registry.limits.config.max-name-length

long

-1

2.1.0.Final

最大アーティファクト名の長さ

registry.limits.config.max-property-key-size

long

-1

2.1.0.Final

最大アーティファクトプロパティーのキーサイズ

registry.limits.config.max-property-value-size

long

-1

2.1.0.Final

最大アーティファクトプロパティー値のサイズ

registry.limits.config.max-requests-per-second

long

-1

2.2.3.Final

1 秒あたりの最大アーティファクトリクエスト

registry.limits.config.max-schema-size-bytes

long

-1

2.2.3.Final

最大スキーマサイズ (バイト)

registry.limits.config.max-total-schemas

long

-1

2.1.0.Final

最大合計スキーマ

registry.limits.config.max-versions-per-artifact

long

-1

2.1.0.Final

アーティファクトごとの最大バージョン

registry.storage.metrics.cache.max-size

long

1000

2.4.1.Final

ストレージメトリクスキャッシュの最大サイズ

8.1.11. log

表8.11 ログ設定オプション
名前デフォルト利用可能:説明

quarkus.log.level

string

 

2.0.0.Final

ログレベル

8.1.12. mt

表8.12 mt 設定オプション
名前デフォルト利用可能:説明

registry.enable.multitenancy

boolean

false

2.0.0.Final

マルチテナントを有効にします。

registry.enable.multitenancy.standalone

boolean

false

2.5.0.Final

Standalone Multitenancy モードを有効にします。このモードの場合、Registry はテナントとそのメタデータを管理するための追加コンポーネントに依存せずに、基本的なマルチテナント機能を提供します。リクエストからテナント ID が初めて展開されるとすぐに、新しいテナントが作成されます。テナント ID は外部で管理する必要があり、テナントはデータを削除することで削除できます。

registry.multitenancy.authorization.enabled

boolean

true

2.1.0.Final

マルチテナントの認可を有効にする

registry.multitenancy.reaper.every

optional<string>

 

2.1.0.Final

マルチテナントリーパー (every)

registry.multitenancy.reaper.max-tenants-reaped

int

100

2.1.0.Final

マルチテナントリーパー (最大テナントリープ数)

registry.multitenancy.reaper.period-seconds

long

10800

2.1.0.Final

マルチテナントリーパー期間 (秒)

registry.multitenancy.tenant.token-claim.names

list<string>

 

2.1.0.Final

テナント ID を解決するために使用されるトークンクレーム

registry.multitenancy.types.context-path.base-path

string

t

2.1.0.Final

マルチテナントコンテキストパスタイプのベースパス

registry.multitenancy.types.context-path.enabled

boolean

true

2.1.0.Final

マルチテナントコンテキストパスタイプを有効にする

registry.multitenancy.types.request-header.enabled

boolean

true

2.1.0.Final

マルチテナントリクエストヘッダータイプを有効にする

registry.multitenancy.types.request-header.name

string

X-Tenant-Id

2.1.0.Final

マルチテナントリクエストヘッダータイプの名前

registry.multitenancy.types.subdomain.enabled

boolean

false

2.1.0.Final

マルチテナントサブドメインタイプを有効にする

registry.multitenancy.types.subdomain.header-name

string

ホスト

2.1.0.Final

マルチテナントサブドメインタイプヘッダーの名前

registry.multitenancy.types.subdomain.location

string

header

2.1.0.Final

マルチテナントサブドメインタイプの場所

registry.multitenancy.types.subdomain.pattern

string

(\w[\w\d\-]*)\.localhost\.local

2.1.0.Final

マルチテナントサブドメインタイプのパターン

registry.multitenancy.types.token-claims.enabled

boolean

false

2.1.0.Final

マルチテナントリクエストヘッダータイプを有効にする

registry.organization-id.claim-name

list<string>

 

2.1.0.Final

組織 ID クレーム名

registry.tenant.manager.auth.client-id

optional<string>

 

2.1.0.Final

テナントマネージャー認証クライアント ID

registry.tenant.manager.auth.client-secret

optional<string>

 

2.1.0.Final

テナントマネージャー認証クライアントシークレット

registry.tenant.manager.auth.enabled

optional<boolean>

 

2.1.0.Final

テナントマネージャー認証が有効になっています

registry.tenant.manager.auth.token.expiration.reduction.ms

optional<long>

 

2.2.0.Final

テナントマネージャー認証トークンの有効期限の短縮 (ミリ秒)

registry.tenant.manager.auth.url.configured

optional<string>

 

2.1.0.Final

テナントマネージャー認証 URL が設定されています

registry.tenant.manager.ssl.ca.path

optional<string>

 

2.2.0.Final

テナントマネージャー SSL Ca パス

registry.tenant.manager.url

optional<string>

 

2.0.0.Final

テナントマネージャー URL

registry.tenants.context.cache.check-period

long

60000

2.1.0.Final

テナントコンテキストキャッシュのチェック期間

registry.tenants.context.cache.max-size

long

1000

2.4.1.Final

テナントコンテキストキャッシュの最大サイズ

8.1.13. リダイレクト

表8.13 リダイレクト設定オプション
名前デフォルト利用可能:説明

registry.enable-redirects

boolean

 

2.1.2.Final

リダイレクトの有効化

registry.redirects

map<string, string>

 

2.1.2.Final

レジストリーのリダイレクト

registry.url.override.host

optional<string>

 

2.5.0.Final

外部からアクセス可能な URL の生成に使用されるホスト名をオーバーライドします。ホストとポートのオーバーライドは、HTTPS パススルー Ingress または Route を使用してレジストリーをデプロイするときに役立ちます。このような場合、リクエストはプロキシーされるため、リダイレクトに再利用されるリクエスト URL (およびポート) は、クライアントが使用する実際の外部 URL には属しません。ターゲット URL に到達できないため、リダイレクトは失敗します。

registry.url.override.port

optional<integer>

 

2.5.0.Final

外部からアクセス可能な URL の生成に使用されるポートを上書きします。

8.1.14. rest

表8.14 rest 設定オプション
名前デフォルト利用可能:説明

registry.rest.artifact.deletion.enabled

boolean [dynamic]

false

2.4.2-SNAPSHOT

アーティファクトバージョンの削除を有効化する

registry.rest.artifact.download.maxSize

int

1000000

2.2.6-SNAPSHOT

URL からダウンロードできるアーティファクトの最大サイズ

registry.rest.artifact.download.skipSSLValidation

boolean

false

2.2.6-SNAPSHOT

URL からアーティファクトをダウンロードする際に SSL 検証をスキップする

8.1.15. store

表8.15 ストア設定オプション
名前デフォルト利用可能:説明

artifacts.skip.disabled.latest

boolean

true

2.4.2-SNAPSHOT

最新のアーティファクトバージョンを取得する際の DISABLED 状態のアーティファクトバージョンをスキップする

quarkus.datasource.db-kind

string

postgresql

2.0.0.Final

データソース Db の種類

quarkus.datasource.jdbc.url

string

 

2.1.0.Final

データソース jdbc URL

registry.sql.init

boolean

true

2.0.0.Final

SQL init

8.1.16. ui

表8.16 ui 設定オプション
名前デフォルト利用可能:説明

quarkus.oidc.tenant-enabled

boolean

false

2.0.0.Final

有効化されている UI OIDC テナント

registry.ui.config.apiUrl

string

 

1.3.0.Final

UI APIs URL

registry.ui.config.auth.oidc.client-id

string

none

2.2.6.Final

UI 認証 OIDC クライアント ID

registry.ui.config.auth.oidc.redirect-url

string

none

2.2.6.Final

UI 認証 OIDC リダイレクト URL

registry.ui.config.auth.oidc.url

string

none

2.2.6.Final

UI 認証 OIDC URL

registry.ui.config.auth.type

string

none

2.2.6.Final

UI 認証タイプ

registry.ui.config.uiCodegenEnabled

boolean

true

2.4.2.Final

有効化されている UI codegen

registry.ui.config.uiContextPath

string

/ui/

2.1.0.Final

UI コンテキストパス

registry.ui.features.readOnly

boolean [dynamic]

false

1.2.0.Final

UI 読み取り専用モード

registry.ui.features.settings

boolean

false

2.2.2.Final

UI 機能設定

registry.ui.root

string

 

2.3.0.Final

UI root コンテキストをオーバーライドします (インバウンドプロキシーを使用して UI コンテキストを再配置する場合に便利です)

付録A サブスクリプションの使用

Apicurio Registry は、ソフトウェアサブスクリプションから提供されます。サブスクリプションを管理するには、Red Hat カスタマーポータルでアカウントにアクセスします。

アカウントへのアクセス

  1. access.redhat.com に移動します。
  2. アカウントがない場合は作成します。
  3. アカウントにログインします。

サブスクリプションのアクティベート

  1. access.redhat.com に移動します。
  2. My Subscriptions に移動します。
  3. Activate a subscription に移動し、16 桁のアクティベーション番号を入力します。

ZIP および TAR ファイルのダウンロード

ZIP または TAR ファイルにアクセスするには、カスタマーポータルを使用して、ダウンロードする関連ファイルを検索します。RPM パッケージを使用している場合、この手順は必要ありません。

  1. ブラウザーを開き、access.redhat.com/downloads で Red Hat カスタマーポータルの Product Downloads ページにログインします。
  2. Integration and Automation カテゴリーで Red Hat Integration エントリーを見つけます。
  3. 目的の Apicurio Registry 製品を選択します。Software Downloads ページが開きます。
  4. コンポーネントの Download リンクをクリックします。

改訂日時: 2024-05-15

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

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

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.