4.5.2. レポート API の公開

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

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

また、デフォルトのインストールでは、OpenShift Container Platformのサービスを利用して証明書を提供し、TLSでレポーティングAPIを保護することが可能になっています。OpenShift Container PlatformのOAuthプロキシは、Reporting Operatorのサイドカーコンテナとして展開され、認証によってレポートAPIを保護します。

4.5.2.1. OpenShift Container Platform認証の使用

デフォルトで、レポート API のセキュリティーは TLS および認証で保護されます。これは、Reporting Operatorが、Reporting Operatorのコンテナと、OpenShift Container Platformのauth-proxyを実行するサイドカーコンテナの両方を含むポッドをデプロイするように構成することで実現します。

レポート 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 を有効なユーザー名とパスワードの組み合わせに置き換えます。