7.2. サンプル Jenkins CI/CD パイプラインのデプロイ
3scale toolbox による API ライフサイクルの自動化は、API ライフサイクルのデプロイメントステージが対象で、CI/CD パイプラインを使用して API 管理ソリューションを自動化することができます。本トピックでは、3scale toolbox を呼び出すサンプル Jenkins パイプラインをデプロイする方法を説明します。
7.2.1. サンプル Jenkins CI/CD パイプライン リンクのコピーリンクがクリップボードにコピーされました!
API ライフサイクルの自動化用に Jenkins パイプラインを作成してデプロイする方法の例として、以下のサンプルが Red Hat Integration リポジトリーで提供されています。
サンプルパイプライン | ターゲット環境 | セキュリティー |
---|---|---|
ホスト型 3scale | API キー | |
Self-managed APIcast を使用するホスト型 3scale およびオンプレミス型 3scale | なし | |
Self-managed APIcast を使用するホスト型 3scale およびオンプレミス型 3scale | OpenID Connect (OIDC) | |
Self-managed APIcast を使用する、開発、テスト、および実稼働環境のホスト型 3scale | API キー | |
Self-managed APIcast を使用する、開発、テスト、および実稼働環境のホスト型 3scale | API キー、なし、OIDC |
これらのサンプルは、3scale toolbox を呼び出す 3scale Jenkins 共有ライブラリーを使用して、主要な API 管理機能を実証します。本トピックの設定手順を実施したら、各 Red Hat Integration リポジトリーのユースケース例 で提供される OpenShift テンプレートを使用してパイプラインをインストールすることができます。
サンプルのパイプラインおよびアプリケーションは、例としてのみ提供されています。ベースとなる API、CLI、およびサンプルパイプラインが活用するその他のインターフェイスは、Red Hat により完全にサポートされています。パイプラインに対して行った変更については、Red Hat による直接のサポートはありません。
7.2.2. ホスト型 3scale 環境の設定 リンクのコピーリンクがクリップボードにコピーされました!
ホスト型 3scale 環境の設定は、すべてのサンプル Jenkins CI/CD パイプラインで必要です。
SaaS - API key
、Multi-environment
、および Semantic versioning
のサンプルパイプライン は、ホスト型 3scale しか使用しません。Hybrid - open
および Hybrid - OIDC
のパイプラインは、オンプレミス型 3scale も使用します。オンプレミス型 3scale 環境の設定 も参照してください。
前提条件
- Linux ワークステーションがある。
- ホスト型 3scale 環境が用意されている。
OpenShift 3.11 クラスターがある。現在、OpenShift 4 はサポートされていません。
- サポート対象設定の情報は、Red Hat 3scale API Management のサポート対象構成 を参照してください。
- OpenShift のドキュメント で説明されているように、OpenShift ルーターでワイルドカードルートを有効にしておく。
手順
- ホスト型 3scale 管理ポータルコンソールにログインします。
- Account Management API への書き込みアクセス権限を設定して、新しいアクセストークンを生成します。
後で使用できるように、生成されたアクセストークンを保存します。以下に例を示します。
export SAAS_ACCESS_TOKEN=123...456
export SAAS_ACCESS_TOKEN=123...456
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 後で使用できるように、3scale テナントの名前を保存します。これは、管理ポータル URL の
-admin.3scale.net
の前にある文字列です。以下に例を示します。export SAAS_TENANT=my_username
export SAAS_TENANT=my_username
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 管理ポータルで Audience > Accounts > Listing の順に移動します。
- Developer をクリックします。
Developer Account ID を保存します。これは、
/buyers/accounts/
に続く URL の最後の部分です。以下に例を示します。export SAAS_DEVELOPER_ACCOUNT_ID=123...456
export SAAS_DEVELOPER_ACCOUNT_ID=123...456
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.3. オンプレミス型 3scale 環境の設定 リンクのコピーリンクがクリップボードにコピーされました!
オンプレミス型 3scale 環境の設定は、Hybrid - open
と Hybrid - OIDC
のサンプル Jenkins CI/CD パイプラインでのみ必要です。
これらの Hybrid
サンプルパイプラインを使用する場合は、オンプレミス型 3scale 環境とホスト型 3scale 環境を設定する必要があります。ホスト型 3scale 環境の設定 も参照してください。
前提条件
- Linux ワークステーションがある。
- オンプレミス型 3scale 環境を用意する。テンプレートを使用して OpenShift 上にオンプレミス型 3scale をインストールする方法については、3scale のインストールに関するドキュメント を参照してください。
OpenShift 3.11 クラスターがある。現在、OpenShift 4 はサポートされていません。
- サポート対象設定の情報は、Red Hat 3scale API Management のサポート対象設定 を参照してください。
- OpenShift のドキュメント で説明されているように、OpenShift ルーターでワイルドカードルートを有効にしておく。
手順
- オンプレミス型 3scale 管理ポータルコンソールにログインします。
- Account Management API への書き込みアクセス権限を設定して、新しいアクセストークンを生成します。
後で使用できるように、生成されたアクセストークンを保存します。以下に例を示します。
export SAAS_ACCESS_TOKEN=123...456
export SAAS_ACCESS_TOKEN=123...456
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 後で使用できるように、3scale テナントの名前を保存します。
export ONPREM_ADMIN_PORTAL_HOSTNAME="$(oc get route system-provider-admin -o jsonpath='{.spec.host}')"
export ONPREM_ADMIN_PORTAL_HOSTNAME="$(oc get route system-provider-admin -o jsonpath='{.spec.host}')"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ワイルドカードルートを定義します。
export OPENSHIFT_ROUTER_SUFFIX=app.openshift.test # Replace me! export APICAST_ONPREM_STAGING_WILDCARD_DOMAIN=onprem-staging.$OPENSHIFT_ROUTER_SUFFIX export APICAST_ONPREM_PRODUCTION_WILDCARD_DOMAIN=onprem-production.$OPENSHIFT_ROUTER_SUFFIX
export OPENSHIFT_ROUTER_SUFFIX=app.openshift.test # Replace me! export APICAST_ONPREM_STAGING_WILDCARD_DOMAIN=onprem-staging.$OPENSHIFT_ROUTER_SUFFIX export APICAST_ONPREM_PRODUCTION_WILDCARD_DOMAIN=onprem-production.$OPENSHIFT_ROUTER_SUFFIX
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OPENSHIFT_ROUTER_SUFFIX
の値を OpenShift ルーターの接尾辞に設定する必要があります (たとえば、app.openshift.test
)。ワイルドカードルートを既存のオンプレミス型 3scale インスタンスに追加します。
oc create route edge apicast-wildcard-staging --service=apicast-staging --hostname="wildcard.$APICAST_ONPREM_STAGING_WILDCARD_DOMAIN" --insecure-policy=Allow --wildcard-policy=Subdomain oc create route edge apicast-wildcard-production --service=apicast-production --hostname="wildcard.$APICAST_ONPREM_PRODUCTION_WILDCARD_DOMAIN" --insecure-policy=Allow --wildcard-policy=Subdomain
oc create route edge apicast-wildcard-staging --service=apicast-staging --hostname="wildcard.$APICAST_ONPREM_STAGING_WILDCARD_DOMAIN" --insecure-policy=Allow --wildcard-policy=Subdomain oc create route edge apicast-wildcard-production --service=apicast-production --hostname="wildcard.$APICAST_ONPREM_PRODUCTION_WILDCARD_DOMAIN" --insecure-policy=Allow --wildcard-policy=Subdomain
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 管理ポータルで Audience > Accounts > Listing の順に移動します。
- Developer をクリックします。
Developer Account ID を保存します。これは、
/buyers/accounts/
に続く URL の最後の部分です。export ONPREM_DEVELOPER_ACCOUNT_ID=5
export ONPREM_DEVELOPER_ACCOUNT_ID=5
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.4. OpenID Connect 向け Red Hat Single Sign-On のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Hybrid - OpenID Connect (OIDC)
または Semantic versioning
のサンプルパイプラインを使用している場合、本セクションの手順を実施して 3scale で Red Hat Single Sign-On (RH-SSO) をデプロイします。これは OIDC 認証に必要であり、両方のサンプルで使用されます。
手順
RH-SSO のドキュメント で説明されているように、RH-SSO 7.3 をデプロイします。
以下のコマンド例は、簡単なサマリーを提供します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 後で使用できるように、RH-SSO インストールのホスト名を保存します。
export SSO_HOSTNAME="$(oc get route sso -o jsonpath='{.spec.host}')"
export SSO_HOSTNAME="$(oc get route sso -o jsonpath='{.spec.host}')"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 3scale デベロッパーポータルのドキュメント で説明されているように 3scale 向けに RH-SSO を設定します。
後で使用できるように、レルム名、クライアント ID、およびクライアントシークレットを保存します。
export REALM=3scale export CLIENT_ID=3scale-admin export CLIENT_SECRET=123...456
export REALM=3scale export CLIENT_ID=3scale-admin export CLIENT_SECRET=123...456
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.5. 3scale toolbox のインストールおよびアクセスの有効化 リンクのコピーリンクがクリップボードにコピーされました!
本セクションでは、toolbox のインストール、リモート 3scale インスタンスの作成、および管理ポータルへのアクセスに使用されるシークレットのプロビジョニングを行う方法について説明します。
手順
- 3scale toolbox で説明されているように、ローカルに 3scale toolbox をインストールします。
適切な toolbox コマンドを実行して、3scale のリモートインスタンスを作成します。
ホスト型 3scale
3scale remote add 3scale-saas "https://$SAAS_ACCESS_TOKEN@$SAAS_TENANT-admin.3scale.net/"
3scale remote add 3scale-saas "https://$SAAS_ACCESS_TOKEN@$SAAS_TENANT-admin.3scale.net/"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オンプレミス型 3scale
3scale remote add 3scale-onprem "https://$ONPREM_ACCESS_TOKEN@$ONPREM_ADMIN_PORTAL_HOSTNAME/"
3scale remote add 3scale-onprem "https://$ONPREM_ACCESS_TOKEN@$ONPREM_ADMIN_PORTAL_HOSTNAME/"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の OpenShift コマンドを実行して、3scale 管理ポータルとアクセストークンが含まれるシークレットをプロビジョニングします。
oc create secret generic 3scale-toolbox -n "$TOOLBOX_NAMESPACE" --from-file="$HOME/.3scalerc.yaml"
oc create secret generic 3scale-toolbox -n "$TOOLBOX_NAMESPACE" --from-file="$HOME/.3scalerc.yaml"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.6. API バックエンドのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
本セクションでは、サンプルパイプラインで提供される API バックエンドの例をデプロイする方法について説明します。独自のパイプラインを作成してデプロイする場合、必要に応じて独自の API バックエンドを代わりに使用できます。
手順
以下のサンプルで使用するために、Beer Catalog API バックエンドの例をデプロイします。
-
SaaS - API key
-
Hybrid - open
Hybrid - OIDC
oc new-app -n "$TOOLBOX_NAMESPACE" -i openshift/redhat-openjdk18-openshift:1.4 https://github.com/microcks/api-lifecycle.git --context-dir=/beer-catalog-demo/api-implementation --name=beer-catalog oc expose -n "$TOOLBOX_NAMESPACE" svc/beer-catalog
oc new-app -n "$TOOLBOX_NAMESPACE" -i openshift/redhat-openjdk18-openshift:1.4 https://github.com/microcks/api-lifecycle.git --context-dir=/beer-catalog-demo/api-implementation --name=beer-catalog oc expose -n "$TOOLBOX_NAMESPACE" svc/beer-catalog
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
後で使用できるように、Beer Catalog API のホスト名を保存します。
export BEER_CATALOG_HOSTNAME="$(oc get route -n "$TOOLBOX_NAMESPACE" beer-catalog -o jsonpath='{.spec.host}')"
export BEER_CATALOG_HOSTNAME="$(oc get route -n "$TOOLBOX_NAMESPACE" beer-catalog -o jsonpath='{.spec.host}')"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のサンプルで使用するために、Red Hat Event API バックエンドの例をデプロイします。
-
Multi-environment
Semantic versioning
oc new-app -n "$TOOLBOX_NAMESPACE" -i openshift/nodejs:10 'https://github.com/nmasse-itix/rhte-api.git#085b015' --name=event-api oc expose -n "$TOOLBOX_NAMESPACE" svc/event-api
oc new-app -n "$TOOLBOX_NAMESPACE" -i openshift/nodejs:10 'https://github.com/nmasse-itix/rhte-api.git#085b015' --name=event-api oc expose -n "$TOOLBOX_NAMESPACE" svc/event-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
後で使用できるように、Event API のホスト名を保存します。
export EVENT_API_HOSTNAME="$(oc get route -n "$TOOLBOX_NAMESPACE" event-api -o jsonpath='{.spec.host}')"
export EVENT_API_HOSTNAME="$(oc get route -n "$TOOLBOX_NAMESPACE" event-api -o jsonpath='{.spec.host}')"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.7. Self-managed APIcast インスタンスのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
本セクションは、ホスト型 3scale 環境で Self-managed APIcast インスタンスで使用するためのものです。本セクションの説明は、SaaS - API key
以外のすべてのサンプルパイプラインに該当します。
手順
ワイルドカードルートを定義します。
export APICAST_SELF_MANAGED_STAGING_WILDCARD_DOMAIN=saas-staging.$OPENSHIFT_ROUTER_SUFFIX export APICAST_SELF_MANAGED_PRODUCTION_WILDCARD_DOMAIN=saas-production.$OPENSHIFT_ROUTER_SUFFIX
export APICAST_SELF_MANAGED_STAGING_WILDCARD_DOMAIN=saas-staging.$OPENSHIFT_ROUTER_SUFFIX export APICAST_SELF_MANAGED_PRODUCTION_WILDCARD_DOMAIN=saas-production.$OPENSHIFT_ROUTER_SUFFIX
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Self-managed APIcast インスタンスをプロジェクトにデプロイします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.8. サンプルパイプラインのインストールとデプロイ リンクのコピーリンクがクリップボードにコピーされました!
必要な環境を設定したら、各 Red Hat Integration リポジトリーのサンプルユースケース 用に提供される OpenShift テンプレートを使用して、サンプルパイプラインをインストールしてデプロイすることができます。本セクションでは、SaaS - API Key
のサンプルについてのみ説明します。
手順
提供される OpenShift テンプレートを使用して、Jenkins パイプラインをインストールします。
oc process -f saas-usecase-apikey/setup.yaml \ -p DEVELOPER_ACCOUNT_ID="$SAAS_DEVELOPER_ACCOUNT_ID" \ -p PRIVATE_BASE_URL="http://$BEER_CATALOG_HOSTNAME" \ -p NAMESPACE="$TOOLBOX_NAMESPACE" |oc create -f -
oc process -f saas-usecase-apikey/setup.yaml \ -p DEVELOPER_ACCOUNT_ID="$SAAS_DEVELOPER_ACCOUNT_ID" \ -p PRIVATE_BASE_URL="http://$BEER_CATALOG_HOSTNAME" \ -p NAMESPACE="$TOOLBOX_NAMESPACE" |oc create -f -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サンプルを以下のようにデプロイします。
oc start-build saas-usecase-apikey
oc start-build saas-usecase-apikey
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.9. 3scale toolbox を使用した API ライフサイクル自動化の制約 リンクのコピーリンクがクリップボードにコピーされました!
本リリースでは、以下の制約が適用されます。
- OpenShift のサポート
- サンプルパイプラインは OpenShift 3.11 でのみサポートされます。現在、OpenShift 4 はサポートされていません。サポート対象設定の情報は、Red Hat 3scale API Management のサポート対象構成 を参照してください。
- アプリケーションの更新
-
アプリケーション用
3scale application apply
toolbox コマンドを使用して、アプリケーションの作成と更新の両方を行うことができます。作成コマンドは、アカウント、プラン、サービス、およびアプリケーションキーをサポートします。 - 更新コマンドは、アカウント、プラン、またはサービスに対する変更をサポートしません。変更が渡されると、パイプラインがトリガーされエラーは表示されませんが、これらのフィールドは更新されません。
-
アプリケーション用
- サービスのコピー
-
3scale copy service
toolbox コマンドを使用してカスタムポリシーが設定されたサービスをコピーする場合、先に個別にカスタムポリシーをコピーする必要があります。