4.5.2. レポート API の公開

OpenShift Container Platform では、デフォルトのメータリングインストールはルートを自動的に公開し、レポート API を利用可能にします。これにより、以下の機能が提供されます。

  • 自動 DNS
  • クラスター CA に基づく自動 TLS

また、デフォルトのインストールでは、OpenShift サービスを使用して証明書を提供し、レポート API を TLS で保護することができます。OpenShift OAuth プロキシーはレポート Operator のサイドカーコンテナーとしてデプロイされ、レポート API を認証で保護します。

4.5.2.1. OpenShift 認証の使用

デフォルトで、レポート API のセキュリティーは TLS および認証で保護されます。これは、レポート Operator をレポート Operator のコンテナーおよび OpenShift 認証プロキシーを実行するサイドカーコンテナーの両方を含む Pod をデプロイするように設定して実行されます。

レポート API にアクセスするために、メータリング Operator はルートを公開します。ルートがインストールされたら、以下のコマンドを実行してルートのホスト名を取得できます。

$ METERING_ROUTE_HOSTNAME=$(oc -n openshift-metering get routes metering -o json | jq -r '.status.ingress[].host')

次に、サービスアカウントトークンまたはユーザー名およびパスワードによる基本認証のいずれかを使用して認証を設定します。

4.5.2.1.1. サービスアカウントトークンを使用した認証

この方法では、以下のコマンドを使用してトークンをレポート Operator のサービスアカウントで使用し、そのベアラートークンを Authorization ヘッダーに渡します。

$ TOKEN=$(oc -n openshift-metering serviceaccounts get-token reporting-operator)
curl -H "Authorization: Bearer $TOKEN" -k "https://$METERING_ROUTE_HOSTNAME/api/v1/reports/get?name=[Report Name]&namespace=openshift-metering&format=[Format]"

上記の URL の name=[Report Name] および format=[Format] パラメーターを置き換えます。format パラメーターは、json、csv、または tabular にすることができます。

4.5.2.1.2. ユーザー名とパスワードを使用した認証

メータリングは、htpasswd ファイルの内容に指定されるユーザー名とパスワードの組み合わせを使用する基本認証の設定をサポートします。デフォルトで、空の htpasswd データを含むシークレットが作成されます。ただし、reporting-operator.spec.authProxy.htpasswd.data および reporting-operator.spec.authProxy.htpasswd.createSecret キーを、この方法を使用するように設定できます。

MeteringConfig で上記を指定した後に、以下のコマンドを実行できます。

$ curl -u testuser:password123 -k "https://$METERING_ROUTE_HOSTNAME/api/v1/reports/get?name=[Report Name]&namespace=openshift-metering&format=[Format]"

testuser:password123 を有効なユーザー名とパスワードの組み合わせに置き換えます。