インフラストラクチャー
Red Hat 3scale API Management を異なるプラットフォームにデプロイする方法について参照してください。
概要
第1章 3scale API Management 2.3 から 2.4 へのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
3scale API Management 管理者は、インストールをバージョン 2.3 から 2.4 にアップグレードします。オプションで 、管理者データの偽装を変更できます。
このプロセスにより、サービスで中断が生じる可能性があります。メンテナンス期間があることを確認してください。
1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- プロジェクトにデプロイされた 3scale API Management 2.3
ツールの前提条件
- jq
1.2. 3scale API Management のアップグレード リンクのコピーリンクがクリップボードにコピーされました!
3scale API Management を 2.3 から 2.4 にアップグレードするには、以下の手順にしたがいます。
1.2.1. ConfigMap の作成 リンクのコピーリンクがクリップボードにコピーされました!
新規 OpenShift 要素についてソースされる ConfigMap の詳細が含まれるファイルを作成します。
必要な変数を設定します。
export $(oc set env dc/system-app --list|grep THREESCALE_SUPERDOMAIN|sort -u) export $(oc set env dc/system-app --list|grep APICAST_REGISTRY_URL|sort -u) APP_LABEL=$(oc get dc backend-listener -o json | jq .spec.template.metadata.labels.app -r) AMP_RELEASE=2.4.0
export $(oc set env dc/system-app --list|grep THREESCALE_SUPERDOMAIN|sort -u) export $(oc set env dc/system-app --list|grep APICAST_REGISTRY_URL|sort -u) APP_LABEL=$(oc get dc backend-listener -o json | jq .spec.template.metadata.labels.app -r) AMP_RELEASE=2.4.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変数が正しく設定されていることを確認します。
echo $THREESCALE_SUPERDOMAIN echo $APICAST_REGISTRY_URL echo $APP_LABEL echo $AMP_RELEASE
echo $THREESCALE_SUPERDOMAIN echo $APICAST_REGISTRY_URL echo $APP_LABEL echo $AMP_RELEASECopy to Clipboard Copied! Toggle word wrap Toggle overflow system-environmentConfigMap を作成します。system-environment.ymlという名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい
system-environmentConfigMap を作成します。oc create -f system-environment.yml
oc create -f system-environment.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
backend-environmentConfigMap を作成します。backend-listenerDeploymentConfig の値を取得します。export $(oc set env dc/backend-listener --list|grep RACK_ENV|sort -u)
export $(oc set env dc/backend-listener --list|grep RACK_ENV|sort -u)Copy to Clipboard Copied! Toggle word wrap Toggle overflow backend-environment.ymlという名前の新規ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい
backend-environmentConfigMap を作成します。oc create -f backend-environment.yml
oc create -f backend-environment.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
apicast-environmentConfigMap を作成します。apicast-environment.ymlという名前の新規ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい
apicast-environmentConfigMap を作成します。oc create -f apicast-environment.yml
oc create -f apicast-environment.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.2. システムのマスタールートの作成 リンクのコピーリンクがクリップボードにコピーされました!
システムのマスタールートを作成するには、以下を実行します。
MASTER_NAMEをMASTER_DOMAIN環境変数の値で設定します。export $(oc set env dc/system-app --list|grep MASTER_DOMAIN|sort -u) MASTER_NAME=$MASTER_DOMAIN
export $(oc set env dc/system-app --list|grep MASTER_DOMAIN|sort -u) MASTER_NAME=$MASTER_DOMAINCopy to Clipboard Copied! Toggle word wrap Toggle overflow MASTER_NAMEが正しく設定されていることを確認します。echo $MASTER_NAME
echo $MASTER_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow system-masterルートを作成し、system-master-adminルートを削除します。oc create route edge system-master --service=system-master --hostname=${MASTER_NAME}.${THREESCALE_SUPERDOMAIN} --port=http oc delete route system-master-adminoc create route edge system-master --service=system-master --hostname=${MASTER_NAME}.${THREESCALE_SUPERDOMAIN} --port=http oc delete route system-master-adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.3. システムデータベースシークレット の移行 リンクのコピーリンクがクリップボードにコピーされました!
システムデータベースのシークレット を新規 system -database OpenShift シークレットに移行するには、以下を実行します。
既存の MySQL 環境変数を取得します。
export $(oc set env dc/system-mysql --list|grep MYSQL_ROOT_PASSWORD) export $(oc set env dc/system-mysql --list | grep MYSQL_DATABASE)
export $(oc set env dc/system-mysql --list|grep MYSQL_ROOT_PASSWORD) export $(oc set env dc/system-mysql --list | grep MYSQL_DATABASE)Copy to Clipboard Copied! Toggle word wrap Toggle overflow APP_LABEL 環境変数を取得します。
APP_LABEL=$(oc get dc backend-listener -o json | jq .spec.template.metadata.labels.app -r)
APP_LABEL=$(oc get dc backend-listener -o json | jq .spec.template.metadata.labels.app -r)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の環境変数を正しく設定していることを確認します。
echo ${MYSQL_ROOT_PASSWORD} echo ${MYSQL_DATABASE} echo ${APP_LABEL}echo ${MYSQL_ROOT_PASSWORD} echo ${MYSQL_DATABASE} echo ${APP_LABEL}Copy to Clipboard Copied! Toggle word wrap Toggle overflow system-databaseシークレットを含むファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットを作成します。
oc create -f system-database.yml
oc create -f system-database.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.4. 新規シークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
アップグレードプロセスを続行するには、以下を作成する必要があります。
-
system-master-apicastシークレット -
複数の
-redisシークレット -
複数のバックエンドシークレット -
複数のシステムシークレット
1.2.4.1. system-master-apicast シークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
APICAST_ACCESS_TOKEN の値を取得します。
export APICAST_ACCESS_TOKEN=$(oc set env --list dc/apicast-production|sort -u|grep THREESCALE_PORTAL_ENDPOINT|cut -d@ -f1|cut -d/ -f3)
export APICAST_ACCESS_TOKEN=$(oc set env --list dc/apicast-production|sort -u|grep THREESCALE_PORTAL_ENDPOINT|cut -d@ -f1|cut -d/ -f3)Copy to Clipboard Copied! Toggle word wrap Toggle overflow system-master-apicast.ymlという名前の新規ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい
system-master-apicastシークレットを作成します。oc create -f system-master-apicast.yml
oc create -f system-master-apicast.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
「新規シークレットの作成」 に戻る
1.2.4.2. -redis シークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
system-redisシークレットを作成します。以下の内容で、
system-redis.ymlという名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルに含まれる情報を使用して
system-redisシークレットを作成します。oc create -f system-redis.yml
oc create -f system-redis.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
backend-redisシークレットを作成します。以下の内容で、
backend-redis.ymlという名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルに含まれる情報を使用して、
backend-redisシークレットを作成します。oc create -f backend-redis.yml
oc create -f backend-redis.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
apicast-redisシークレットを作成します。以下の内容で
apicast-redis.ymlという名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルに含まれる情報を使用して
apicast-redisシークレットを作成します。oc create -f apicast-redis.yml
oc create -f apicast-redis.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
「新規シークレットの作成」 に戻る
1.2.4.3. backend- シークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
backend-listenerシークレットを作成します。以下の内容で、
backend-listener.ymlという名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルに含まれる情報を使用して、
backend-listenerシークレットを作成します。oc create -f backend-listener.yml
oc create -f backend-listener.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
backend-internal-apiシークレットを作成します。2.3 環境から値を取得します。
export $(oc set env dc backend-listener --list|grep CONFIG_INTERNAL_API_USER) export $(oc set env dc backend-listener --list|grep CONFIG_INTERNAL_API_PASSWORD)
export $(oc set env dc backend-listener --list|grep CONFIG_INTERNAL_API_USER) export $(oc set env dc backend-listener --list|grep CONFIG_INTERNAL_API_PASSWORD)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変数の値を確認します。
echo $CONFIG_INTERNAL_API_USER $CONFIG_INTERNAL_API_PASSWORD
echo $CONFIG_INTERNAL_API_USER $CONFIG_INTERNAL_API_PASSWORDCopy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットを作成します。
oc create secret generic backend-internal-api --from-literal=password=${CONFIG_INTERNAL_API_PASSWORD} --from-literal=username=${CONFIG_INTERNAL_API_USER}oc create secret generic backend-internal-api --from-literal=password=${CONFIG_INTERNAL_API_PASSWORD} --from-literal=username=${CONFIG_INTERNAL_API_USER}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
「新規シークレットの作成」 に戻る
1.2.4.4. system- シークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
system-memcacheシークレットを作成します。以下の内容で、
system-memcache.ymlという名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルに含まれる情報を使用して
system-memcacheシークレットを作成します。oc create -f system-memcache.yml
oc create -f system-memcache.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
system-recaptchaシークレットを作成します。以下の内容で、
system-recaptcha.ymlという名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルに含まれる情報を使用して
system-recaptchaシークレットを作成します。oc create -f system-recaptcha.yml
oc create -f system-recaptcha.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
system-events-hookシークレットを作成します。2.3 環境から値を取得します。
export $(oc set env dc backend-worker --list|grep CONFIG_EVENTS_HOOK_SHARED_SECRET)
export $(oc set env dc backend-worker --list|grep CONFIG_EVENTS_HOOK_SHARED_SECRET)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変数の値を確認します。
echo ${CONFIG_EVENTS_HOOK_SHARED_SECRET}echo ${CONFIG_EVENTS_HOOK_SHARED_SECRET}Copy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットを作成します。
oc create secret generic system-events-hook --from-literal=PASSWORD=${CONFIG_EVENTS_HOOK_SHARED_SECRET} --from-literal=URL=http://system-master:3000/master/events/importoc create secret generic system-events-hook --from-literal=PASSWORD=${CONFIG_EVENTS_HOOK_SHARED_SECRET} --from-literal=URL=http://system-master:3000/master/events/importCopy to Clipboard Copied! Toggle word wrap Toggle overflow
system-seedシークレットを作成します。2.3 環境から値を取得します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変数の値を確認します。
echo ${ADMIN_ACCESS_TOKEN} ${MASTER_ACCESS_TOKEN} ${USER_PASSWORD} ${USER_LOGIN} ${MASTER_DOMAIN} ${MASTER_PASSWORD} ${MASTER_USER} ${TENANT_NAME}echo ${ADMIN_ACCESS_TOKEN} ${MASTER_ACCESS_TOKEN} ${USER_PASSWORD} ${USER_LOGIN} ${MASTER_DOMAIN} ${MASTER_PASSWORD} ${MASTER_USER} ${TENANT_NAME}Copy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットを作成します。
oc create secret generic system-seed --from-literal=ADMIN_ACCESS_TOKEN=${ADMIN_ACCESS_TOKEN} --from-literal=MASTER_ACCESS_TOKEN=${MASTER_ACCESS_TOKEN} --from-literal=ADMIN_PASSWORD=${USER_PASSWORD} --from-literal=ADMIN_USER=${USER_LOGIN} --from-literal=MASTER_DOMAIN=${MASTER_DOMAIN} --from-literal=MASTER_PASSWORD=${MASTER_PASSWORD} --from-literal=MASTER_USER=${MASTER_USER} --from-literal=TENANT_NAME=${TENANT_NAME}oc create secret generic system-seed --from-literal=ADMIN_ACCESS_TOKEN=${ADMIN_ACCESS_TOKEN} --from-literal=MASTER_ACCESS_TOKEN=${MASTER_ACCESS_TOKEN} --from-literal=ADMIN_PASSWORD=${USER_PASSWORD} --from-literal=ADMIN_USER=${USER_LOGIN} --from-literal=MASTER_DOMAIN=${MASTER_DOMAIN} --from-literal=MASTER_PASSWORD=${MASTER_PASSWORD} --from-literal=MASTER_USER=${MASTER_USER} --from-literal=TENANT_NAME=${TENANT_NAME}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
system-appシークレットを作成します。2.3 環境から値を取得します。
export $(oc set env dc system-app --list|grep SECRET_KEY_BASE|uniq)
export $(oc set env dc system-app --list|grep SECRET_KEY_BASE|uniq)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変数の値を確認します。
echo ${SECRET_KEY_BASE}echo ${SECRET_KEY_BASE}Copy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットを作成します。
oc create secret generic system-app --from-literal=SECRET_KEY_BASE=${SECRET_KEY_BASE}oc create secret generic system-app --from-literal=SECRET_KEY_BASE=${SECRET_KEY_BASE}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
「新規シークレットの作成」 に戻る
1.2.5. DeploymentConfig のパッチ適用 リンクのコピーリンクがクリップボードにコピーされました!
backend-cronDeploymentConfig にパッチを適用します。oc patch dc/backend-cron -p '{"spec":{"template":{"spec":{"containers":[{"name":"backend-cron","env":[{"name":"CONFIG_REDIS_PROXY","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_URL","name":"backend-redis"}}},{"name":"CONFIG_REDIS_SENTINEL_HOSTS","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_SENTINEL_HOSTS","name":"backend-redis"}}},{"name":"CONFIG_REDIS_SENTINEL_ROLE","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_SENTINEL_ROLE","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_MASTER_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_URL","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_SENTINEL_HOSTS","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_SENTINEL_HOSTS","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_SENTINEL_ROLE","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_SENTINEL_ROLE","name":"backend-redis"}}},{"name":"RACK_ENV","value":null,"valueFrom":{"configMapKeyRef":{"key":"RACK_ENV","name":"backend-environment"}}}]}],"initContainers":[{"name":"backend-redis-svc","command":["/opt/app/entrypoint.sh","sh","-c","until rake connectivity:redis_storage_queue_check; do sleep $SLEEP_SECONDS;\ndone"],"env":[{"name":"CONFIG_QUEUES_MASTER_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_URL","name":"backend-redis"}}}]}]}}}}'oc patch dc/backend-cron -p '{"spec":{"template":{"spec":{"containers":[{"name":"backend-cron","env":[{"name":"CONFIG_REDIS_PROXY","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_URL","name":"backend-redis"}}},{"name":"CONFIG_REDIS_SENTINEL_HOSTS","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_SENTINEL_HOSTS","name":"backend-redis"}}},{"name":"CONFIG_REDIS_SENTINEL_ROLE","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_SENTINEL_ROLE","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_MASTER_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_URL","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_SENTINEL_HOSTS","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_SENTINEL_HOSTS","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_SENTINEL_ROLE","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_SENTINEL_ROLE","name":"backend-redis"}}},{"name":"RACK_ENV","value":null,"valueFrom":{"configMapKeyRef":{"key":"RACK_ENV","name":"backend-environment"}}}]}],"initContainers":[{"name":"backend-redis-svc","command":["/opt/app/entrypoint.sh","sh","-c","until rake connectivity:redis_storage_queue_check; do sleep $SLEEP_SECONDS;\ndone"],"env":[{"name":"CONFIG_QUEUES_MASTER_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_URL","name":"backend-redis"}}}]}]}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow backend-listenerDeploymentConfig にパッチを適用します。oc patch dc/backend-listener -p '{"spec":{"template":{"spec":{"containers":[{"name":"backend-listener","env":[{"name":"CONFIG_REDIS_PROXY","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_URL","name":"backend-redis"}}},{"name":"CONFIG_REDIS_SENTINEL_HOSTS","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_SENTINEL_HOSTS","name":"backend-redis"}}},{"name":"CONFIG_REDIS_SENTINEL_ROLE","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_SENTINEL_ROLE","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_MASTER_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_URL","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_SENTINEL_HOSTS","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_SENTINEL_HOSTS","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_SENTINEL_ROLE","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_SENTINEL_ROLE","name":"backend-redis"}}},{"name":"RACK_ENV","value":null,"valueFrom":{"configMapKeyRef":{"key":"RACK_ENV","name":"backend-environment"}}},{"name":"CONFIG_INTERNAL_API_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"username","name":"backend-internal-api"}}},{"name":"CONFIG_INTERNAL_API_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"password","name":"backend-internal-api"}}}]}]}}}}'oc patch dc/backend-listener -p '{"spec":{"template":{"spec":{"containers":[{"name":"backend-listener","env":[{"name":"CONFIG_REDIS_PROXY","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_URL","name":"backend-redis"}}},{"name":"CONFIG_REDIS_SENTINEL_HOSTS","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_SENTINEL_HOSTS","name":"backend-redis"}}},{"name":"CONFIG_REDIS_SENTINEL_ROLE","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_SENTINEL_ROLE","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_MASTER_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_URL","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_SENTINEL_HOSTS","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_SENTINEL_HOSTS","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_SENTINEL_ROLE","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_SENTINEL_ROLE","name":"backend-redis"}}},{"name":"RACK_ENV","value":null,"valueFrom":{"configMapKeyRef":{"key":"RACK_ENV","name":"backend-environment"}}},{"name":"CONFIG_INTERNAL_API_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"username","name":"backend-internal-api"}}},{"name":"CONFIG_INTERNAL_API_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"password","name":"backend-internal-api"}}}]}]}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow backend-workerDeploymentConfig にパッチを適用します。oc patch dc/backend-worker -p '{"spec":{"template":{"spec":{"containers":[{"name":"backend-worker","env":[{"name":"CONFIG_REDIS_PROXY","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_URL","name":"backend-redis"}}},{"name":"CONFIG_REDIS_SENTINEL_HOSTS","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_SENTINEL_HOSTS","name":"backend-redis"}}},{"name":"CONFIG_REDIS_SENTINEL_ROLE","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_SENTINEL_ROLE","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_MASTER_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_URL","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_SENTINEL_HOSTS","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_SENTINEL_HOSTS","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_SENTINEL_ROLE","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_SENTINEL_ROLE","name":"backend-redis"}}},{"name":"RACK_ENV","value":null,"valueFrom":{"configMapKeyRef":{"key":"RACK_ENV","name":"backend-environment"}}},{"name":"CONFIG_EVENTS_HOOK","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-events-hook"}}},{"name":"CONFIG_EVENTS_HOOK_SHARED_SECRET","value":null,"valueFrom":{"secretKeyRef":{"key":"PASSWORD","name":"system-events-hook"}}}]}],"initContainers":[{"name":"backend-redis-svc","command":["/opt/app/entrypoint.sh","sh","-c","until rake connectivity:redis_storage_queue_check; do sleep $SLEEP_SECONDS;\ndone"],"env":[{"name":"CONFIG_QUEUES_MASTER_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_URL","name":"backend-redis"}}}]}]}}}}'oc patch dc/backend-worker -p '{"spec":{"template":{"spec":{"containers":[{"name":"backend-worker","env":[{"name":"CONFIG_REDIS_PROXY","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_URL","name":"backend-redis"}}},{"name":"CONFIG_REDIS_SENTINEL_HOSTS","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_SENTINEL_HOSTS","name":"backend-redis"}}},{"name":"CONFIG_REDIS_SENTINEL_ROLE","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_SENTINEL_ROLE","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_MASTER_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_URL","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_SENTINEL_HOSTS","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_SENTINEL_HOSTS","name":"backend-redis"}}},{"name":"CONFIG_QUEUES_SENTINEL_ROLE","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_SENTINEL_ROLE","name":"backend-redis"}}},{"name":"RACK_ENV","value":null,"valueFrom":{"configMapKeyRef":{"key":"RACK_ENV","name":"backend-environment"}}},{"name":"CONFIG_EVENTS_HOOK","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-events-hook"}}},{"name":"CONFIG_EVENTS_HOOK_SHARED_SECRET","value":null,"valueFrom":{"secretKeyRef":{"key":"PASSWORD","name":"system-events-hook"}}}]}],"initContainers":[{"name":"backend-redis-svc","command":["/opt/app/entrypoint.sh","sh","-c","until rake connectivity:redis_storage_queue_check; do sleep $SLEEP_SECONDS;\ndone"],"env":[{"name":"CONFIG_QUEUES_MASTER_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_QUEUES_URL","name":"backend-redis"}}}]}]}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow system-appDeploymentConfig コンテナーにパッチを適用します。oc patch dc/system-app -p '{"spec":{"strategy":{"activeDeadlineSeconds":21600,"resources":{},"rollingParams":{"pre":{"execNewPod":{"env":[{"name":"AMP_RELEASE","value":null,"valueFrom":{"configMapKeyRef":{"key":"AMP_RELEASE","name":"system-environment"}}},{"name":"APICAST_REGISTRY_URL","value":null,"valueFrom":{"configMapKeyRef":{"key":"APICAST_REGISTRY_URL","name":"system-environment"}}},{"name":"FORCE_SSL","value":null,"valueFrom":{"configMapKeyRef":{"key":"FORCE_SSL","name":"system-environment"}}},{"name":"PROVIDER_PLAN","value":null,"valueFrom":{"configMapKeyRef":{"key":"PROVIDER_PLAN","name":"system-environment"}}},{"name":"RAILS_ENV","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_ENV","name":"system-environment"}}},{"name":"RAILS_LOG_LEVEL","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_LEVEL","name":"system-environment"}}},{"name":"RAILS_LOG_TO_STDOUT","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_TO_STDOUT","name":"system-environment"}}},{"name":"SSL_CERT_DIR","value":null,"valueFrom":{"configMapKeyRef":{"key":"SSL_CERT_DIR","name":"system-environment"}}},{"name":"THINKING_SPHINX_PORT","value":null,"valueFrom":{"configMapKeyRef":{"key":"THINKING_SPHINX_PORT","name":"system-environment"}}},{"name":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","name":"system-environment"}}},{"name":"THREESCALE_SUPERDOMAIN","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SUPERDOMAIN","name":"system-environment"}}},{"name":"DATABASE_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-database"}}},{"name":"MASTER_DOMAIN","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_DOMAIN","name":"system-seed"}}},{"name":"MASTER_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_USER","name":"system-seed"}}},{"name":"MASTER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_PASSWORD","name":"system-seed"}}},{"name":"ADMIN_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_ACCESS_TOKEN","name":"system-seed"}}},{"name":"USER_LOGIN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_USER","name":"system-seed"}}},{"name":"USER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_PASSWORD","name":"system-seed"}}},{"name":"TENANT_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"TENANT_NAME","name":"system-seed"}}},{"name":"THINKING_SPHINX_ADDRESS","value":"system-sphinx"},{"name":"THINKING_SPHINX_CONFIGURATION_FILE","value":"/tmp/sphinx.conf"},{"name":"EVENTS_SHARED_SECRET","value":null,"valueFrom":{"secretKeyRef":{"key":"PASSWORD","name":"system-events-hook"}}},{"name":"RECAPTCHA_PUBLIC_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PUBLIC_KEY","name":"system-recaptcha"}}},{"name":"RECAPTCHA_PRIVATE_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PRIVATE_KEY","name":"system-recaptcha"}}},{"name":"SECRET_KEY_BASE","value":null,"valueFrom":{"secretKeyRef":{"key":"SECRET_KEY_BASE","name":"system-app"}}},{"name":"REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-redis"}}},{"name":"MEMCACHE_SERVERS","value":null,"valueFrom":{"secretKeyRef":{"key":"SERVERS","name":"system-memcache"}}},{"name":"BACKEND_REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_URL","name":"backend-redis"}}},{"name":"APICAST_BACKEND_ROOT_ENDPOINT","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"BACKEND_ROUTE","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"SMTP_ADDRESS","valueFrom":{"configMapKeyRef":{"key":"address","name":"smtp"}}},{"name":"SMTP_USER_NAME","valueFrom":{"configMapKeyRef":{"key":"username","name":"smtp"}}},{"name":"SMTP_PASSWORD","valueFrom":{"configMapKeyRef":{"key":"password","name":"smtp"}}},{"name":"SMTP_DOMAIN","valueFrom":{"configMapKeyRef":{"key":"domain","name":"smtp"}}},{"name":"SMTP_PORT","valueFrom":{"configMapKeyRef":{"key":"port","name":"smtp"}}},{"name":"SMTP_AUTHENTICATION","valueFrom":{"configMapKeyRef":{"key":"authentication","name":"smtp"}}},{"name":"SMTP_OPENSSL_VERIFY_MODE","valueFrom":{"configMapKeyRef":{"key":"openssl.verify.mode","name":"smtp"}}},{"name":"APICAST_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ACCESS_TOKEN","name":"system-master-apicast"}}},{"name":"ZYNC_AUTHENTICATION_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ZYNC_AUTHENTICATION_TOKEN","name":"zync"}}},{"name":"CONFIG_INTERNAL_API_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"username","name":"backend-internal-api"}}},{"name":"CONFIG_INTERNAL_API_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"password","name":"backend-internal-api"}}}]}}}},"template":{"spec":{"containers":[{"name":"system-master","env":[{"name":"AMP_RELEASE","value":null,"valueFrom":{"configMapKeyRef":{"key":"AMP_RELEASE","name":"system-environment"}}},{"name":"APICAST_REGISTRY_URL","value":null,"valueFrom":{"configMapKeyRef":{"key":"APICAST_REGISTRY_URL","name":"system-environment"}}},{"name":"FORCE_SSL","value":null,"valueFrom":{"configMapKeyRef":{"key":"FORCE_SSL","name":"system-environment"}}},{"name":"PROVIDER_PLAN","value":null,"valueFrom":{"configMapKeyRef":{"key":"PROVIDER_PLAN","name":"system-environment"}}},{"name":"RAILS_ENV","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_ENV","name":"system-environment"}}},{"name":"RAILS_LOG_LEVEL","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_LEVEL","name":"system-environment"}}},{"name":"RAILS_LOG_TO_STDOUT","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_TO_STDOUT","name":"system-environment"}}},{"name":"SSL_CERT_DIR","value":null,"valueFrom":{"configMapKeyRef":{"key":"SSL_CERT_DIR","name":"system-environment"}}},{"name":"THINKING_SPHINX_PORT","value":null,"valueFrom":{"configMapKeyRef":{"key":"THINKING_SPHINX_PORT","name":"system-environment"}}},{"name":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","name":"system-environment"}}},{"name":"THREESCALE_SUPERDOMAIN","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SUPERDOMAIN","name":"system-environment"}}},{"name":"DATABASE_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-database"}}},{"name":"MASTER_DOMAIN","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_DOMAIN","name":"system-seed"}}},{"name":"MASTER_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_USER","name":"system-seed"}}},{"name":"MASTER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_PASSWORD","name":"system-seed"}}},{"name":"ADMIN_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_ACCESS_TOKEN","name":"system-seed"}}},{"name":"USER_LOGIN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_USER","name":"system-seed"}}},{"name":"USER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_PASSWORD","name":"system-seed"}}},{"name":"TENANT_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"TENANT_NAME","name":"system-seed"}}},{"name":"EVENTS_SHARED_SECRET","value":null,"valueFrom":{"secretKeyRef":{"key":"PASSWORD","name":"system-events-hook"}}},{"name":"RECAPTCHA_PUBLIC_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PUBLIC_KEY","name":"system-recaptcha"}}},{"name":"RECAPTCHA_PRIVATE_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PRIVATE_KEY","name":"system-recaptcha"}}},{"name":"SECRET_KEY_BASE","value":null,"valueFrom":{"secretKeyRef":{"key":"SECRET_KEY_BASE","name":"system-app"}}},{"name":"REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-redis"}}},{"name":"MEMCACHE_SERVERS","value":null,"valueFrom":{"secretKeyRef":{"key":"SERVERS","name":"system-memcache"}}},{"name":"BACKEND_REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_URL","name":"backend-redis"}}},{"name":"APICAST_BACKEND_ROOT_ENDPOINT","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"BACKEND_ROUTE","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"APICAST_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ACCESS_TOKEN","name":"system-master-apicast"}}},{"name":"ZYNC_AUTHENTICATION_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ZYNC_AUTHENTICATION_TOKEN","name":"zync"}}},{"name":"CONFIG_INTERNAL_API_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"username","name":"backend-internal-api"}}},{"name":"CONFIG_INTERNAL_API_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"password","name":"backend-internal-api"}}}]},{"name":"system-provider","env":[{"name":"AMP_RELEASE","value":null,"valueFrom":{"configMapKeyRef":{"key":"AMP_RELEASE","name":"system-environment"}}},{"name":"APICAST_REGISTRY_URL","value":null,"valueFrom":{"configMapKeyRef":{"key":"APICAST_REGISTRY_URL","name":"system-environment"}}},{"name":"FORCE_SSL","value":null,"valueFrom":{"configMapKeyRef":{"key":"FORCE_SSL","name":"system-environment"}}},{"name":"PROVIDER_PLAN","value":null,"valueFrom":{"configMapKeyRef":{"key":"PROVIDER_PLAN","name":"system-environment"}}},{"name":"RAILS_ENV","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_ENV","name":"system-environment"}}},{"name":"RAILS_LOG_LEVEL","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_LEVEL","name":"system-environment"}}},{"name":"RAILS_LOG_TO_STDOUT","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_TO_STDOUT","name":"system-environment"}}},{"name":"SSL_CERT_DIR","value":null,"valueFrom":{"configMapKeyRef":{"key":"SSL_CERT_DIR","name":"system-environment"}}},{"name":"THINKING_SPHINX_PORT","value":null,"valueFrom":{"configMapKeyRef":{"key":"THINKING_SPHINX_PORT","name":"system-environment"}}},{"name":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","name":"system-environment"}}},{"name":"THREESCALE_SUPERDOMAIN","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SUPERDOMAIN","name":"system-environment"}}},{"name":"DATABASE_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-database"}}},{"name":"MASTER_DOMAIN","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_DOMAIN","name":"system-seed"}}},{"name":"MASTER_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_USER","name":"system-seed"}}},{"name":"MASTER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_PASSWORD","name":"system-seed"}}},{"name":"ADMIN_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_ACCESS_TOKEN","name":"system-seed"}}},{"name":"USER_LOGIN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_USER","name":"system-seed"}}},{"name":"USER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_PASSWORD","name":"system-seed"}}},{"name":"TENANT_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"TENANT_NAME","name":"system-seed"}}},{"name":"EVENTS_SHARED_SECRET","value":null,"valueFrom":{"secretKeyRef":{"key":"PASSWORD","name":"system-events-hook"}}},{"name":"RECAPTCHA_PUBLIC_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PUBLIC_KEY","name":"system-recaptcha"}}},{"name":"RECAPTCHA_PRIVATE_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PRIVATE_KEY","name":"system-recaptcha"}}},{"name":"SECRET_KEY_BASE","value":null,"valueFrom":{"secretKeyRef":{"key":"SECRET_KEY_BASE","name":"system-app"}}},{"name":"REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-redis"}}},{"name":"MEMCACHE_SERVERS","value":null,"valueFrom":{"secretKeyRef":{"key":"SERVERS","name":"system-memcache"}}},{"name":"BACKEND_REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_URL","name":"backend-redis"}}},{"name":"APICAST_BACKEND_ROOT_ENDPOINT","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"BACKEND_ROUTE","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"APICAST_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ACCESS_TOKEN","name":"system-master-apicast"}}},{"name":"ZYNC_AUTHENTICATION_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ZYNC_AUTHENTICATION_TOKEN","name":"zync"}}},{"name":"CONFIG_INTERNAL_API_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"username","name":"backend-internal-api"}}},{"name":"CONFIG_INTERNAL_API_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"password","name":"backend-internal-api"}}}]},{"name":"system-developer","env":[{"name":"AMP_RELEASE","value":null,"valueFrom":{"configMapKeyRef":{"key":"AMP_RELEASE","name":"system-environment"}}},{"name":"APICAST_REGISTRY_URL","value":null,"valueFrom":{"configMapKeyRef":{"key":"APICAST_REGISTRY_URL","name":"system-environment"}}},{"name":"FORCE_SSL","value":null,"valueFrom":{"configMapKeyRef":{"key":"FORCE_SSL","name":"system-environment"}}},{"name":"PROVIDER_PLAN","value":null,"valueFrom":{"configMapKeyRef":{"key":"PROVIDER_PLAN","name":"system-environment"}}},{"name":"RAILS_ENV","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_ENV","name":"system-environment"}}},{"name":"RAILS_LOG_LEVEL","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_LEVEL","name":"system-environment"}}},{"name":"RAILS_LOG_TO_STDOUT","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_TO_STDOUT","name":"system-environment"}}},{"name":"SSL_CERT_DIR","value":null,"valueFrom":{"configMapKeyRef":{"key":"SSL_CERT_DIR","name":"system-environment"}}},{"name":"THINKING_SPHINX_PORT","value":null,"valueFrom":{"configMapKeyRef":{"key":"THINKING_SPHINX_PORT","name":"system-environment"}}},{"name":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","name":"system-environment"}}},{"name":"THREESCALE_SUPERDOMAIN","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SUPERDOMAIN","name":"system-environment"}}},{"name":"DATABASE_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-database"}}},{"name":"MASTER_DOMAIN","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_DOMAIN","name":"system-seed"}}},{"name":"MASTER_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_USER","name":"system-seed"}}},{"name":"MASTER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_PASSWORD","name":"system-seed"}}},{"name":"ADMIN_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_ACCESS_TOKEN","name":"system-seed"}}},{"name":"USER_LOGIN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_USER","name":"system-seed"}}},{"name":"USER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_PASSWORD","name":"system-seed"}}},{"name":"TENANT_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"TENANT_NAME","name":"system-seed"}}},{"name":"EVENTS_SHARED_SECRET","value":null,"valueFrom":{"secretKeyRef":{"key":"PASSWORD","name":"system-events-hook"}}},{"name":"RECAPTCHA_PUBLIC_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PUBLIC_KEY","name":"system-recaptcha"}}},{"name":"RECAPTCHA_PRIVATE_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PRIVATE_KEY","name":"system-recaptcha"}}},{"name":"SECRET_KEY_BASE","value":null,"valueFrom":{"secretKeyRef":{"key":"SECRET_KEY_BASE","name":"system-app"}}},{"name":"REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-redis"}}},{"name":"MEMCACHE_SERVERS","value":null,"valueFrom":{"secretKeyRef":{"key":"SERVERS","name":"system-memcache"}}},{"name":"BACKEND_REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_URL","name":"backend-redis"}}},{"name":"APICAST_BACKEND_ROOT_ENDPOINT","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"BACKEND_ROUTE","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"APICAST_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ACCESS_TOKEN","name":"system-master-apicast"}}},{"name":"ZYNC_AUTHENTICATION_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ZYNC_AUTHENTICATION_TOKEN","name":"zync"}}},{"name":"CONFIG_INTERNAL_API_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"username","name":"backend-internal-api"}}},{"name":"CONFIG_INTERNAL_API_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"password","name":"backend-internal-api"}}}]}],"volumes":[{"configMap":{"defaultMode":420,"items":[{"key":"zync.yml","path":"zync.yml"},{"key":"rolling_updates.yml","path":"rolling_updates.yml"},{"key":"service_discovery.yml","path":"service_discovery.yml"}],"name":"system"},"name":"system-config"}]}}}}'oc patch dc/system-app -p '{"spec":{"strategy":{"activeDeadlineSeconds":21600,"resources":{},"rollingParams":{"pre":{"execNewPod":{"env":[{"name":"AMP_RELEASE","value":null,"valueFrom":{"configMapKeyRef":{"key":"AMP_RELEASE","name":"system-environment"}}},{"name":"APICAST_REGISTRY_URL","value":null,"valueFrom":{"configMapKeyRef":{"key":"APICAST_REGISTRY_URL","name":"system-environment"}}},{"name":"FORCE_SSL","value":null,"valueFrom":{"configMapKeyRef":{"key":"FORCE_SSL","name":"system-environment"}}},{"name":"PROVIDER_PLAN","value":null,"valueFrom":{"configMapKeyRef":{"key":"PROVIDER_PLAN","name":"system-environment"}}},{"name":"RAILS_ENV","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_ENV","name":"system-environment"}}},{"name":"RAILS_LOG_LEVEL","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_LEVEL","name":"system-environment"}}},{"name":"RAILS_LOG_TO_STDOUT","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_TO_STDOUT","name":"system-environment"}}},{"name":"SSL_CERT_DIR","value":null,"valueFrom":{"configMapKeyRef":{"key":"SSL_CERT_DIR","name":"system-environment"}}},{"name":"THINKING_SPHINX_PORT","value":null,"valueFrom":{"configMapKeyRef":{"key":"THINKING_SPHINX_PORT","name":"system-environment"}}},{"name":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","name":"system-environment"}}},{"name":"THREESCALE_SUPERDOMAIN","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SUPERDOMAIN","name":"system-environment"}}},{"name":"DATABASE_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-database"}}},{"name":"MASTER_DOMAIN","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_DOMAIN","name":"system-seed"}}},{"name":"MASTER_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_USER","name":"system-seed"}}},{"name":"MASTER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_PASSWORD","name":"system-seed"}}},{"name":"ADMIN_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_ACCESS_TOKEN","name":"system-seed"}}},{"name":"USER_LOGIN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_USER","name":"system-seed"}}},{"name":"USER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_PASSWORD","name":"system-seed"}}},{"name":"TENANT_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"TENANT_NAME","name":"system-seed"}}},{"name":"THINKING_SPHINX_ADDRESS","value":"system-sphinx"},{"name":"THINKING_SPHINX_CONFIGURATION_FILE","value":"/tmp/sphinx.conf"},{"name":"EVENTS_SHARED_SECRET","value":null,"valueFrom":{"secretKeyRef":{"key":"PASSWORD","name":"system-events-hook"}}},{"name":"RECAPTCHA_PUBLIC_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PUBLIC_KEY","name":"system-recaptcha"}}},{"name":"RECAPTCHA_PRIVATE_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PRIVATE_KEY","name":"system-recaptcha"}}},{"name":"SECRET_KEY_BASE","value":null,"valueFrom":{"secretKeyRef":{"key":"SECRET_KEY_BASE","name":"system-app"}}},{"name":"REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-redis"}}},{"name":"MEMCACHE_SERVERS","value":null,"valueFrom":{"secretKeyRef":{"key":"SERVERS","name":"system-memcache"}}},{"name":"BACKEND_REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_URL","name":"backend-redis"}}},{"name":"APICAST_BACKEND_ROOT_ENDPOINT","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"BACKEND_ROUTE","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"SMTP_ADDRESS","valueFrom":{"configMapKeyRef":{"key":"address","name":"smtp"}}},{"name":"SMTP_USER_NAME","valueFrom":{"configMapKeyRef":{"key":"username","name":"smtp"}}},{"name":"SMTP_PASSWORD","valueFrom":{"configMapKeyRef":{"key":"password","name":"smtp"}}},{"name":"SMTP_DOMAIN","valueFrom":{"configMapKeyRef":{"key":"domain","name":"smtp"}}},{"name":"SMTP_PORT","valueFrom":{"configMapKeyRef":{"key":"port","name":"smtp"}}},{"name":"SMTP_AUTHENTICATION","valueFrom":{"configMapKeyRef":{"key":"authentication","name":"smtp"}}},{"name":"SMTP_OPENSSL_VERIFY_MODE","valueFrom":{"configMapKeyRef":{"key":"openssl.verify.mode","name":"smtp"}}},{"name":"APICAST_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ACCESS_TOKEN","name":"system-master-apicast"}}},{"name":"ZYNC_AUTHENTICATION_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ZYNC_AUTHENTICATION_TOKEN","name":"zync"}}},{"name":"CONFIG_INTERNAL_API_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"username","name":"backend-internal-api"}}},{"name":"CONFIG_INTERNAL_API_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"password","name":"backend-internal-api"}}}]}}}},"template":{"spec":{"containers":[{"name":"system-master","env":[{"name":"AMP_RELEASE","value":null,"valueFrom":{"configMapKeyRef":{"key":"AMP_RELEASE","name":"system-environment"}}},{"name":"APICAST_REGISTRY_URL","value":null,"valueFrom":{"configMapKeyRef":{"key":"APICAST_REGISTRY_URL","name":"system-environment"}}},{"name":"FORCE_SSL","value":null,"valueFrom":{"configMapKeyRef":{"key":"FORCE_SSL","name":"system-environment"}}},{"name":"PROVIDER_PLAN","value":null,"valueFrom":{"configMapKeyRef":{"key":"PROVIDER_PLAN","name":"system-environment"}}},{"name":"RAILS_ENV","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_ENV","name":"system-environment"}}},{"name":"RAILS_LOG_LEVEL","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_LEVEL","name":"system-environment"}}},{"name":"RAILS_LOG_TO_STDOUT","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_TO_STDOUT","name":"system-environment"}}},{"name":"SSL_CERT_DIR","value":null,"valueFrom":{"configMapKeyRef":{"key":"SSL_CERT_DIR","name":"system-environment"}}},{"name":"THINKING_SPHINX_PORT","value":null,"valueFrom":{"configMapKeyRef":{"key":"THINKING_SPHINX_PORT","name":"system-environment"}}},{"name":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","name":"system-environment"}}},{"name":"THREESCALE_SUPERDOMAIN","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SUPERDOMAIN","name":"system-environment"}}},{"name":"DATABASE_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-database"}}},{"name":"MASTER_DOMAIN","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_DOMAIN","name":"system-seed"}}},{"name":"MASTER_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_USER","name":"system-seed"}}},{"name":"MASTER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_PASSWORD","name":"system-seed"}}},{"name":"ADMIN_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_ACCESS_TOKEN","name":"system-seed"}}},{"name":"USER_LOGIN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_USER","name":"system-seed"}}},{"name":"USER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_PASSWORD","name":"system-seed"}}},{"name":"TENANT_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"TENANT_NAME","name":"system-seed"}}},{"name":"EVENTS_SHARED_SECRET","value":null,"valueFrom":{"secretKeyRef":{"key":"PASSWORD","name":"system-events-hook"}}},{"name":"RECAPTCHA_PUBLIC_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PUBLIC_KEY","name":"system-recaptcha"}}},{"name":"RECAPTCHA_PRIVATE_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PRIVATE_KEY","name":"system-recaptcha"}}},{"name":"SECRET_KEY_BASE","value":null,"valueFrom":{"secretKeyRef":{"key":"SECRET_KEY_BASE","name":"system-app"}}},{"name":"REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-redis"}}},{"name":"MEMCACHE_SERVERS","value":null,"valueFrom":{"secretKeyRef":{"key":"SERVERS","name":"system-memcache"}}},{"name":"BACKEND_REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_URL","name":"backend-redis"}}},{"name":"APICAST_BACKEND_ROOT_ENDPOINT","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"BACKEND_ROUTE","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"APICAST_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ACCESS_TOKEN","name":"system-master-apicast"}}},{"name":"ZYNC_AUTHENTICATION_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ZYNC_AUTHENTICATION_TOKEN","name":"zync"}}},{"name":"CONFIG_INTERNAL_API_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"username","name":"backend-internal-api"}}},{"name":"CONFIG_INTERNAL_API_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"password","name":"backend-internal-api"}}}]},{"name":"system-provider","env":[{"name":"AMP_RELEASE","value":null,"valueFrom":{"configMapKeyRef":{"key":"AMP_RELEASE","name":"system-environment"}}},{"name":"APICAST_REGISTRY_URL","value":null,"valueFrom":{"configMapKeyRef":{"key":"APICAST_REGISTRY_URL","name":"system-environment"}}},{"name":"FORCE_SSL","value":null,"valueFrom":{"configMapKeyRef":{"key":"FORCE_SSL","name":"system-environment"}}},{"name":"PROVIDER_PLAN","value":null,"valueFrom":{"configMapKeyRef":{"key":"PROVIDER_PLAN","name":"system-environment"}}},{"name":"RAILS_ENV","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_ENV","name":"system-environment"}}},{"name":"RAILS_LOG_LEVEL","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_LEVEL","name":"system-environment"}}},{"name":"RAILS_LOG_TO_STDOUT","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_TO_STDOUT","name":"system-environment"}}},{"name":"SSL_CERT_DIR","value":null,"valueFrom":{"configMapKeyRef":{"key":"SSL_CERT_DIR","name":"system-environment"}}},{"name":"THINKING_SPHINX_PORT","value":null,"valueFrom":{"configMapKeyRef":{"key":"THINKING_SPHINX_PORT","name":"system-environment"}}},{"name":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","name":"system-environment"}}},{"name":"THREESCALE_SUPERDOMAIN","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SUPERDOMAIN","name":"system-environment"}}},{"name":"DATABASE_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-database"}}},{"name":"MASTER_DOMAIN","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_DOMAIN","name":"system-seed"}}},{"name":"MASTER_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_USER","name":"system-seed"}}},{"name":"MASTER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_PASSWORD","name":"system-seed"}}},{"name":"ADMIN_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_ACCESS_TOKEN","name":"system-seed"}}},{"name":"USER_LOGIN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_USER","name":"system-seed"}}},{"name":"USER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_PASSWORD","name":"system-seed"}}},{"name":"TENANT_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"TENANT_NAME","name":"system-seed"}}},{"name":"EVENTS_SHARED_SECRET","value":null,"valueFrom":{"secretKeyRef":{"key":"PASSWORD","name":"system-events-hook"}}},{"name":"RECAPTCHA_PUBLIC_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PUBLIC_KEY","name":"system-recaptcha"}}},{"name":"RECAPTCHA_PRIVATE_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PRIVATE_KEY","name":"system-recaptcha"}}},{"name":"SECRET_KEY_BASE","value":null,"valueFrom":{"secretKeyRef":{"key":"SECRET_KEY_BASE","name":"system-app"}}},{"name":"REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-redis"}}},{"name":"MEMCACHE_SERVERS","value":null,"valueFrom":{"secretKeyRef":{"key":"SERVERS","name":"system-memcache"}}},{"name":"BACKEND_REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_URL","name":"backend-redis"}}},{"name":"APICAST_BACKEND_ROOT_ENDPOINT","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"BACKEND_ROUTE","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"APICAST_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ACCESS_TOKEN","name":"system-master-apicast"}}},{"name":"ZYNC_AUTHENTICATION_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ZYNC_AUTHENTICATION_TOKEN","name":"zync"}}},{"name":"CONFIG_INTERNAL_API_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"username","name":"backend-internal-api"}}},{"name":"CONFIG_INTERNAL_API_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"password","name":"backend-internal-api"}}}]},{"name":"system-developer","env":[{"name":"AMP_RELEASE","value":null,"valueFrom":{"configMapKeyRef":{"key":"AMP_RELEASE","name":"system-environment"}}},{"name":"APICAST_REGISTRY_URL","value":null,"valueFrom":{"configMapKeyRef":{"key":"APICAST_REGISTRY_URL","name":"system-environment"}}},{"name":"FORCE_SSL","value":null,"valueFrom":{"configMapKeyRef":{"key":"FORCE_SSL","name":"system-environment"}}},{"name":"PROVIDER_PLAN","value":null,"valueFrom":{"configMapKeyRef":{"key":"PROVIDER_PLAN","name":"system-environment"}}},{"name":"RAILS_ENV","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_ENV","name":"system-environment"}}},{"name":"RAILS_LOG_LEVEL","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_LEVEL","name":"system-environment"}}},{"name":"RAILS_LOG_TO_STDOUT","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_TO_STDOUT","name":"system-environment"}}},{"name":"SSL_CERT_DIR","value":null,"valueFrom":{"configMapKeyRef":{"key":"SSL_CERT_DIR","name":"system-environment"}}},{"name":"THINKING_SPHINX_PORT","value":null,"valueFrom":{"configMapKeyRef":{"key":"THINKING_SPHINX_PORT","name":"system-environment"}}},{"name":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","name":"system-environment"}}},{"name":"THREESCALE_SUPERDOMAIN","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SUPERDOMAIN","name":"system-environment"}}},{"name":"DATABASE_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-database"}}},{"name":"MASTER_DOMAIN","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_DOMAIN","name":"system-seed"}}},{"name":"MASTER_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_USER","name":"system-seed"}}},{"name":"MASTER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_PASSWORD","name":"system-seed"}}},{"name":"ADMIN_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_ACCESS_TOKEN","name":"system-seed"}}},{"name":"USER_LOGIN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_USER","name":"system-seed"}}},{"name":"USER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_PASSWORD","name":"system-seed"}}},{"name":"TENANT_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"TENANT_NAME","name":"system-seed"}}},{"name":"EVENTS_SHARED_SECRET","value":null,"valueFrom":{"secretKeyRef":{"key":"PASSWORD","name":"system-events-hook"}}},{"name":"RECAPTCHA_PUBLIC_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PUBLIC_KEY","name":"system-recaptcha"}}},{"name":"RECAPTCHA_PRIVATE_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PRIVATE_KEY","name":"system-recaptcha"}}},{"name":"SECRET_KEY_BASE","value":null,"valueFrom":{"secretKeyRef":{"key":"SECRET_KEY_BASE","name":"system-app"}}},{"name":"REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-redis"}}},{"name":"MEMCACHE_SERVERS","value":null,"valueFrom":{"secretKeyRef":{"key":"SERVERS","name":"system-memcache"}}},{"name":"BACKEND_REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_URL","name":"backend-redis"}}},{"name":"APICAST_BACKEND_ROOT_ENDPOINT","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"BACKEND_ROUTE","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"APICAST_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ACCESS_TOKEN","name":"system-master-apicast"}}},{"name":"ZYNC_AUTHENTICATION_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ZYNC_AUTHENTICATION_TOKEN","name":"zync"}}},{"name":"CONFIG_INTERNAL_API_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"username","name":"backend-internal-api"}}},{"name":"CONFIG_INTERNAL_API_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"password","name":"backend-internal-api"}}}]}],"volumes":[{"configMap":{"defaultMode":420,"items":[{"key":"zync.yml","path":"zync.yml"},{"key":"rolling_updates.yml","path":"rolling_updates.yml"},{"key":"service_discovery.yml","path":"service_discovery.yml"}],"name":"system"},"name":"system-config"}]}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow system-sidekiqDeploymentConfig を更新して、新規シークレット からシステムのデータベース情報を収集します。oc patch dc/system-sidekiq -p '{"spec":{"template":{"spec":{"containers":[{"name":"system-sidekiq","env":[{"name":"AMP_RELEASE","value":null,"valueFrom":{"configMapKeyRef":{"key":"AMP_RELEASE","name":"system-environment"}}},{"name":"APICAST_REGISTRY_URL","value":null,"valueFrom":{"configMapKeyRef":{"key":"APICAST_REGISTRY_URL","name":"system-environment"}}},{"name":"FORCE_SSL","value":null,"valueFrom":{"configMapKeyRef":{"key":"FORCE_SSL","name":"system-environment"}}},{"name":"PROVIDER_PLAN","value":null,"valueFrom":{"configMapKeyRef":{"key":"PROVIDER_PLAN","name":"system-environment"}}},{"name":"RAILS_ENV","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_ENV","name":"system-environment"}}},{"name":"RAILS_LOG_LEVEL","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_LEVEL","name":"system-environment"}}},{"name":"RAILS_LOG_TO_STDOUT","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_TO_STDOUT","name":"system-environment"}}},{"name":"SSL_CERT_DIR","value":null,"valueFrom":{"configMapKeyRef":{"key":"SSL_CERT_DIR","name":"system-environment"}}},{"name":"THINKING_SPHINX_PORT","value":null,"valueFrom":{"configMapKeyRef":{"key":"THINKING_SPHINX_PORT","name":"system-environment"}}},{"name":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","name":"system-environment"}}},{"name":"THREESCALE_SUPERDOMAIN","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SUPERDOMAIN","name":"system-environment"}}},{"name":"DATABASE_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-database"}}},{"name":"MASTER_DOMAIN","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_DOMAIN","name":"system-seed"}}},{"name":"MASTER_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_USER","name":"system-seed"}}},{"name":"MASTER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_PASSWORD","name":"system-seed"}}},{"name":"ADMIN_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_ACCESS_TOKEN","name":"system-seed"}}},{"name":"USER_LOGIN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_USER","name":"system-seed"}}},{"name":"USER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_PASSWORD","name":"system-seed"}}},{"name":"TENANT_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"TENANT_NAME","name":"system-seed"}}},{"name":"EVENTS_SHARED_SECRET","value":null,"valueFrom":{"secretKeyRef":{"key":"PASSWORD","name":"system-events-hook"}}},{"name":"RECAPTCHA_PUBLIC_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PUBLIC_KEY","name":"system-recaptcha"}}},{"name":"RECAPTCHA_PRIVATE_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PRIVATE_KEY","name":"system-recaptcha"}}},{"name":"SECRET_KEY_BASE","value":null,"valueFrom":{"secretKeyRef":{"key":"SECRET_KEY_BASE","name":"system-app"}}},{"name":"REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-redis"}}},{"name":"MEMCACHE_SERVERS","value":null,"valueFrom":{"secretKeyRef":{"key":"SERVERS","name":"system-memcache"}}},{"name":"BACKEND_REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_URL","name":"backend-redis"}}},{"name":"APICAST_BACKEND_ROOT_ENDPOINT","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"BACKEND_ROUTE","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"APICAST_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ACCESS_TOKEN","name":"system-master-apicast"}}},{"name":"ZYNC_AUTHENTICATION_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ZYNC_AUTHENTICATION_TOKEN","name":"zync"}}},{"name":"CONFIG_INTERNAL_API_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"username","name":"backend-internal-api"}}},{"name":"CONFIG_INTERNAL_API_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"password","name":"backend-internal-api"}}}]}],"initContainers":[{"name":"check-svc","command":["bash","-c","bundle exec sh -c \"until rake boot:redis && curl --output /dev/null --silent --fail --head http://system-master:3000/status; do sleep $SLEEP_SECONDS; done\""],"env":[{"name":"REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-redis"}}}]}],"volumes":[{"configMap":{"defaultMode":420,"items":[{"key":"zync.yml","path":"zync.yml"},{"key":"rolling_updates.yml","path":"rolling_updates.yml"},{"key":"service_discovery.yml","path":"service_discovery.yml"}]},"name":"system-config"}]}}}}'oc patch dc/system-sidekiq -p '{"spec":{"template":{"spec":{"containers":[{"name":"system-sidekiq","env":[{"name":"AMP_RELEASE","value":null,"valueFrom":{"configMapKeyRef":{"key":"AMP_RELEASE","name":"system-environment"}}},{"name":"APICAST_REGISTRY_URL","value":null,"valueFrom":{"configMapKeyRef":{"key":"APICAST_REGISTRY_URL","name":"system-environment"}}},{"name":"FORCE_SSL","value":null,"valueFrom":{"configMapKeyRef":{"key":"FORCE_SSL","name":"system-environment"}}},{"name":"PROVIDER_PLAN","value":null,"valueFrom":{"configMapKeyRef":{"key":"PROVIDER_PLAN","name":"system-environment"}}},{"name":"RAILS_ENV","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_ENV","name":"system-environment"}}},{"name":"RAILS_LOG_LEVEL","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_LEVEL","name":"system-environment"}}},{"name":"RAILS_LOG_TO_STDOUT","value":null,"valueFrom":{"configMapKeyRef":{"key":"RAILS_LOG_TO_STDOUT","name":"system-environment"}}},{"name":"SSL_CERT_DIR","value":null,"valueFrom":{"configMapKeyRef":{"key":"SSL_CERT_DIR","name":"system-environment"}}},{"name":"THINKING_SPHINX_PORT","value":null,"valueFrom":{"configMapKeyRef":{"key":"THINKING_SPHINX_PORT","name":"system-environment"}}},{"name":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE","name":"system-environment"}}},{"name":"THREESCALE_SUPERDOMAIN","value":null,"valueFrom":{"configMapKeyRef":{"key":"THREESCALE_SUPERDOMAIN","name":"system-environment"}}},{"name":"DATABASE_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-database"}}},{"name":"MASTER_DOMAIN","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_DOMAIN","name":"system-seed"}}},{"name":"MASTER_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_USER","name":"system-seed"}}},{"name":"MASTER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"MASTER_PASSWORD","name":"system-seed"}}},{"name":"ADMIN_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_ACCESS_TOKEN","name":"system-seed"}}},{"name":"USER_LOGIN","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_USER","name":"system-seed"}}},{"name":"USER_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"ADMIN_PASSWORD","name":"system-seed"}}},{"name":"TENANT_NAME","value":null,"valueFrom":{"secretKeyRef":{"key":"TENANT_NAME","name":"system-seed"}}},{"name":"EVENTS_SHARED_SECRET","value":null,"valueFrom":{"secretKeyRef":{"key":"PASSWORD","name":"system-events-hook"}}},{"name":"RECAPTCHA_PUBLIC_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PUBLIC_KEY","name":"system-recaptcha"}}},{"name":"RECAPTCHA_PRIVATE_KEY","value":null,"valueFrom":{"secretKeyRef":{"key":"PRIVATE_KEY","name":"system-recaptcha"}}},{"name":"SECRET_KEY_BASE","value":null,"valueFrom":{"secretKeyRef":{"key":"SECRET_KEY_BASE","name":"system-app"}}},{"name":"REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-redis"}}},{"name":"MEMCACHE_SERVERS","value":null,"valueFrom":{"secretKeyRef":{"key":"SERVERS","name":"system-memcache"}}},{"name":"BACKEND_REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"REDIS_STORAGE_URL","name":"backend-redis"}}},{"name":"APICAST_BACKEND_ROOT_ENDPOINT","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"BACKEND_ROUTE","value":null,"valueFrom":{"secretKeyRef":{"key":"route_endpoint","name":"backend-listener"}}},{"name":"APICAST_ACCESS_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ACCESS_TOKEN","name":"system-master-apicast"}}},{"name":"ZYNC_AUTHENTICATION_TOKEN","value":null,"valueFrom":{"secretKeyRef":{"key":"ZYNC_AUTHENTICATION_TOKEN","name":"zync"}}},{"name":"CONFIG_INTERNAL_API_USER","value":null,"valueFrom":{"secretKeyRef":{"key":"username","name":"backend-internal-api"}}},{"name":"CONFIG_INTERNAL_API_PASSWORD","value":null,"valueFrom":{"secretKeyRef":{"key":"password","name":"backend-internal-api"}}}]}],"initContainers":[{"name":"check-svc","command":["bash","-c","bundle exec sh -c \"until rake boot:redis && curl --output /dev/null --silent --fail --head http://system-master:3000/status; do sleep $SLEEP_SECONDS; done\""],"env":[{"name":"REDIS_URL","value":null,"valueFrom":{"secretKeyRef":{"key":"URL","name":"system-redis"}}}]}],"volumes":[{"configMap":{"defaultMode":420,"items":[{"key":"zync.yml","path":"zync.yml"},{"key":"rolling_updates.yml","path":"rolling_updates.yml"},{"key":"service_discovery.yml","path":"service_discovery.yml"}]},"name":"system-config"}]}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow system-sphinxDeploymentConfig を更新し、新規シークレット からシステムのデータベース情報を収集します。oc patch dc/system-sphinx -p '{"spec":{"template":{"spec":{"containers":[{"name":"system-sphinx","env":[{"name":"DATABASE_URL","value":"","valueFrom":{"secretKeyRef":{"key":"URL","name":"system-database"}}}]}]}}}}'oc patch dc/system-sphinx -p '{"spec":{"template":{"spec":{"containers":[{"name":"system-sphinx","env":[{"name":"DATABASE_URL","value":"","valueFrom":{"secretKeyRef":{"key":"URL","name":"system-database"}}}]}]}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow apicast-stagingDeploymentConfig コンテナーにパッチを適用します。oc patch dc/apicast-staging -p '{"spec":{"template": {"spec": { "containers": [ {"name": "apicast-staging", "env": [ { "name": "THREESCALE_PORTAL_ENDPOINT", "value":null,"valueFrom": { "secretKeyRef": { "key": "PROXY_CONFIGS_ENDPOINT", "name": "system-master-apicast" } } }, { "name": "BACKEND_ENDPOINT_OVERRIDE", "value":null,"valueFrom": { "secretKeyRef": { "key": "service_endpoint", "name": "backend-listener" } } }, { "name": "APICAST_MANAGEMENT_API", "value":null,"valueFrom": { "configMapKeyRef": { "key": "APICAST_MANAGEMENT_API", "name": "apicast-environment" } } }, { "name": "OPENSSL_VERIFY", "value":null,"valueFrom": { "configMapKeyRef": { "key": "OPENSSL_VERIFY", "name": "apicast-environment" } } }, { "name": "APICAST_RESPONSE_CODES", "value":null,"valueFrom": { "configMapKeyRef": { "key": "APICAST_RESPONSE_CODES", "name": "apicast-environment" } } }, { "name": "APICAST_CONFIGURATION_LOADER", "value": "lazy" }, { "name": "APICAST_CONFIGURATION_CACHE", "value": "0" }, { "name": "THREESCALE_DEPLOYMENT_ENV", "value": "staging" }, { "name": "REDIS_URL", "value":null,"valueFrom": { "secretKeyRef": { "key": "STAGING_URL", "name": "apicast-redis" } } } ]}]}}}}'oc patch dc/apicast-staging -p '{"spec":{"template": {"spec": { "containers": [ {"name": "apicast-staging", "env": [ { "name": "THREESCALE_PORTAL_ENDPOINT", "value":null,"valueFrom": { "secretKeyRef": { "key": "PROXY_CONFIGS_ENDPOINT", "name": "system-master-apicast" } } }, { "name": "BACKEND_ENDPOINT_OVERRIDE", "value":null,"valueFrom": { "secretKeyRef": { "key": "service_endpoint", "name": "backend-listener" } } }, { "name": "APICAST_MANAGEMENT_API", "value":null,"valueFrom": { "configMapKeyRef": { "key": "APICAST_MANAGEMENT_API", "name": "apicast-environment" } } }, { "name": "OPENSSL_VERIFY", "value":null,"valueFrom": { "configMapKeyRef": { "key": "OPENSSL_VERIFY", "name": "apicast-environment" } } }, { "name": "APICAST_RESPONSE_CODES", "value":null,"valueFrom": { "configMapKeyRef": { "key": "APICAST_RESPONSE_CODES", "name": "apicast-environment" } } }, { "name": "APICAST_CONFIGURATION_LOADER", "value": "lazy" }, { "name": "APICAST_CONFIGURATION_CACHE", "value": "0" }, { "name": "THREESCALE_DEPLOYMENT_ENV", "value": "staging" }, { "name": "REDIS_URL", "value":null,"valueFrom": { "secretKeyRef": { "key": "STAGING_URL", "name": "apicast-redis" } } } ]}]}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow apicast-productionDeploymentConfig コンテナーにパッチを適用します。oc patch dc/apicast-production -p '{"spec":{"template":{"spec": { "containers": [ {"name":"apicast-production", "env": [ { "name": "THREESCALE_PORTAL_ENDPOINT", "value":null,"valueFrom": { "secretKeyRef": { "key": "PROXY_CONFIGS_ENDPOINT", "name": "system-master-apicast" } } }, { "name": "BACKEND_ENDPOINT_OVERRIDE", "value":null,"valueFrom": { "secretKeyRef": { "key": "service_endpoint", "name": "backend-listener" } } }, { "name": "APICAST_MANAGEMENT_API", "value":null,"valueFrom": { "configMapKeyRef": { "key": "APICAST_MANAGEMENT_API", "name": "apicast-environment" } } }, { "name": "OPENSSL_VERIFY", "value":null,"valueFrom": { "configMapKeyRef": { "key": "OPENSSL_VERIFY", "name": "apicast-environment" } } }, { "name": "APICAST_RESPONSE_CODES", "value":null,"valueFrom": { "configMapKeyRef": { "key": "APICAST_RESPONSE_CODES", "name": "apicast-environment" } } }, { "name": "APICAST_CONFIGURATION_LOADER", "value": "boot" }, { "name": "APICAST_CONFIGURATION_CACHE", "value": "300" }, { "name": "THREESCALE_DEPLOYMENT_ENV", "value": "production" }, { "name": "REDIS_URL", "value":null,"valueFrom": { "secretKeyRef": { "key": "PRODUCTION_URL", "name": "apicast-redis" } } } ]}]}}}}'oc patch dc/apicast-production -p '{"spec":{"template":{"spec": { "containers": [ {"name":"apicast-production", "env": [ { "name": "THREESCALE_PORTAL_ENDPOINT", "value":null,"valueFrom": { "secretKeyRef": { "key": "PROXY_CONFIGS_ENDPOINT", "name": "system-master-apicast" } } }, { "name": "BACKEND_ENDPOINT_OVERRIDE", "value":null,"valueFrom": { "secretKeyRef": { "key": "service_endpoint", "name": "backend-listener" } } }, { "name": "APICAST_MANAGEMENT_API", "value":null,"valueFrom": { "configMapKeyRef": { "key": "APICAST_MANAGEMENT_API", "name": "apicast-environment" } } }, { "name": "OPENSSL_VERIFY", "value":null,"valueFrom": { "configMapKeyRef": { "key": "OPENSSL_VERIFY", "name": "apicast-environment" } } }, { "name": "APICAST_RESPONSE_CODES", "value":null,"valueFrom": { "configMapKeyRef": { "key": "APICAST_RESPONSE_CODES", "name": "apicast-environment" } } }, { "name": "APICAST_CONFIGURATION_LOADER", "value": "boot" }, { "name": "APICAST_CONFIGURATION_CACHE", "value": "300" }, { "name": "THREESCALE_DEPLOYMENT_ENV", "value": "production" }, { "name": "REDIS_URL", "value":null,"valueFrom": { "secretKeyRef": { "key": "PRODUCTION_URL", "name": "apicast-redis" } } } ]}]}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow apicast-wildcard-routerDeploymentConfig コンテナーにパッチを適用します。oc patch dc/apicast-wildcard-router -p '{"spec":{"template":{"spec":{"containers":[{"name":"apicast-wildcard-router","env":[{"name":"API_HOST","value":null,"valueFrom":{"secretKeyRef":{"key":"BASE_URL","name":"system-master-apicast"}}}]}]}}}}'oc patch dc/apicast-wildcard-router -p '{"spec":{"template":{"spec":{"containers":[{"name":"apicast-wildcard-router","env":[{"name":"API_HOST","value":null,"valueFrom":{"secretKeyRef":{"key":"BASE_URL","name":"system-master-apicast"}}}]}]}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.6. パッチイメージストリーム リンクのコピーリンクがクリップボードにコピーされました!
the
amp-systemイメージストリームにパッチを適用します。3scale API Management が Oracle Database を使用してデプロイされている場合は、以下を実行します。
システムイメージ 2.4.0 イメージストリームを更新します。
oc patch imagestream/amp-system --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP system 2.4.0"}, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/3scale-amp24/system"}, "name": "2.4.0", "referencePolicy": {"type": "Source"}}}]'oc patch imagestream/amp-system --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP system 2.4.0"}, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/3scale-amp24/system"}, "name": "2.4.0", "referencePolicy": {"type": "Source"}}}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 2.4タグから取得する3scale-amp-oracleのビルド設定を更新します。oc patch bc 3scale-amp-system-oracle --type json -p '[{"op": "replace", "path": "/spec/strategy/dockerStrategy/from/name", "value": "amp-system:2.4.0"}]'oc patch bc 3scale-amp-system-oracle --type json -p '[{"op": "replace", "path": "/spec/strategy/dockerStrategy/from/name", "value": "amp-system:2.4.0"}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow ビルドを実行します。
oc start-build 3scale-amp-system-oracle --from-dir=.
oc start-build 3scale-amp-system-oracle --from-dir=.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3scale API Management が別のデータベースと共にデプロイされている場合は、以下のコマンドを使用します。
oc patch imagestream/amp-system --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP system 2.4.0"}, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/3scale-amp24/system"}, "name": "2.4.0", "referencePolicy": {"type": "Source"}}}]' oc patch imagestream/amp-system --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP system (latest)"}, "from": { "kind": "ImageStreamTag", "name": "2.4.0"}, "name": "latest", "referencePolicy": {"type": "Source"}}}]'oc patch imagestream/amp-system --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP system 2.4.0"}, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/3scale-amp24/system"}, "name": "2.4.0", "referencePolicy": {"type": "Source"}}}]' oc patch imagestream/amp-system --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP system (latest)"}, "from": { "kind": "ImageStreamTag", "name": "2.4.0"}, "name": "latest", "referencePolicy": {"type": "Source"}}}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
amp-apicastイメージストリームにパッチを適用します。oc patch imagestream/amp-apicast --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP APIcast 2.4.0"}, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/3scale-amp24/apicast-gateway"}, "name": "2.4.0", "referencePolicy": {"type": "Source"}}}]' oc patch imagestream/amp-apicast --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP APIcast (latest)"}, "from": { "kind": "ImageStreamTag", "name": "2.4.0"}, "name": "latest", "referencePolicy": {"type": "Source"}}}]'oc patch imagestream/amp-apicast --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP APIcast 2.4.0"}, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/3scale-amp24/apicast-gateway"}, "name": "2.4.0", "referencePolicy": {"type": "Source"}}}]' oc patch imagestream/amp-apicast --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP APIcast (latest)"}, "from": { "kind": "ImageStreamTag", "name": "2.4.0"}, "name": "latest", "referencePolicy": {"type": "Source"}}}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow amp-backendイメージストリームにパッチを適用します。oc patch imagestream/amp-backend --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP Backend 2.4.0"}, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/3scale-amp24/backend"}, "name": "2.4.0", "referencePolicy": {"type": "Source"}}}]' oc patch imagestream/amp-backend --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP Backend (latest)"}, "from": { "kind": "ImageStreamTag", "name": "2.4.0"}, "name": "latest", "referencePolicy": {"type": "Source"}}}]'oc patch imagestream/amp-backend --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP Backend 2.4.0"}, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/3scale-amp24/backend"}, "name": "2.4.0", "referencePolicy": {"type": "Source"}}}]' oc patch imagestream/amp-backend --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP Backend (latest)"}, "from": { "kind": "ImageStreamTag", "name": "2.4.0"}, "name": "latest", "referencePolicy": {"type": "Source"}}}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow amp-zyncイメージストリームにパッチを適用します。oc patch imagestream/amp-zync --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP Zync 2.4.0"}, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/3scale-amp24/zync"}, "name": "2.4.0", "referencePolicy": {"type": "Source"}}}]' oc patch imagestream/amp-zync --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP Zync (latest)"}, "from": { "kind": "ImageStreamTag", "name": "2.4.0"}, "name": "latest", "referencePolicy": {"type": "Source"}}}]'oc patch imagestream/amp-zync --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP Zync 2.4.0"}, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/3scale-amp24/zync"}, "name": "2.4.0", "referencePolicy": {"type": "Source"}}}]' oc patch imagestream/amp-zync --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP Zync (latest)"}, "from": { "kind": "ImageStreamTag", "name": "2.4.0"}, "name": "latest", "referencePolicy": {"type": "Source"}}}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.7. サービスディスカバリーのエントリーの追加 リンクのコピーリンクがクリップボードにコピーされました!
アップグレードプロセスの一環として、サービスディスカバリーの ConfigMap エントリーを追加します。サービスディスカバリーは、OpenShift クラスターで検出可能な実行中のサービスを認識することで、API の管理を可能にする機能です。
システムConfigMap を編集して、エントリーを追加します。oc edit configmap system
oc edit configmap systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow エントリーを追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
『サービスディスカバリー 』ガイドを参照して、サービスをインポートするその他の設定を継続することができます。
1.2.8. 追加の DeploymentConfig の設定 リンクのコピーリンクがクリップボードにコピーされました!
system-memcacheDeploymentConfig にパッチを適用します。oc patch dc/system-memcache --patch='{"spec":{"template":{"spec":{"containers":[{"name": "memcache", "image":"registry.access.redhat.com/3scale-amp20/memcached"}]}}}}'oc patch dc/system-memcache --patch='{"spec":{"template":{"spec":{"containers":[{"name": "memcache", "image":"registry.access.redhat.com/3scale-amp20/memcached"}]}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow system-resqueDeploymentConfig を削除します。oc delete dc/system-resque
oc delete dc/system-resqueCopy to Clipboard Copied! Toggle word wrap Toggle overflow system-sidekiq並行処理を推奨されるレベルに増やすには、環境変数を設定します。oc set env dc/system-sidekiq RAILS_MAX_THREADS=25
oc set env dc/system-sidekiq RAILS_MAX_THREADS=25Copy to Clipboard Copied! Toggle word wrap Toggle overflow 環境変数を設定して、表示されるリリースバージョンを更新します。
oc set env dc/system-app AMP_RELEASE=2.4.0
oc set env dc/system-app AMP_RELEASE=2.4.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3. 管理者 Impersonation の変更(オプション) リンクのコピーリンクがクリップボードにコピーされました!
3scale API Management はオープンソースであるため、偽装データは一般に公開されています。このため、一部のデータを変更する必要がある場合があります。
- 管理者の偽装に使用する一意のユーザー名。
- 管理者ユーザーの偽装メールのドメイン。
たとえば、username :<your-username> および を想定します。管理者の偽装を変更するには、以下の手順を実行する必要があります。
domain:< example.com>
以下の内容で、
system-impersonation-secret.ymlという名前のファイルをローカルに作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<your-username>および<example.com>を、選択したユーザー名とドメインに変更します。 シークレットを作成します。
oc create -f system-impersonation-secret.yml
oc create -f system-impersonation-secret.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を使用して、このシークレットから環境変数を設定します。
oc set env --from=secret/system-impersonation --prefix=IMPERSONATION_ADMIN dc/system-app
oc set env --from=secret/system-impersonation --prefix=IMPERSONATION_ADMIN dc/system-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow system-appを再デプロイします。oc rollout latest system-app
oc rollout latest system-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow system-コンテナーに接続します。app デプロイメントの system-masteroc rsh -c system-master dc/system-app
oc rsh -c system-master dc/system-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコンテナーの実行で、
<your-username>および<example.com>を適宜変更します。bundle exec rake "impersonation_admin_user:update[<your-username>,<example.com>]"
bundle exec rake "impersonation_admin_user:update[<your-username>,<example.com>]"Copy to Clipboard Copied! Toggle word wrap Toggle overflow これでユーザーインターフェースからテナントの権限を借用できるはずです。
第2章 Oracle Database リレーショナルデータベース管理システムを使用した 3scale API Management システムイメージのビルド リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、3scale には設定データを MySQL データベースに保管する system というコンポーネントが含まれています。任意で、デフォルトのデータベースをオーバーライドし、情報を外部の Oracle Database に保管することができます。本章の手順に従って、独自の Oracle Database クライアントバイナリーでカスタムのシステムコンテナーイメージをビルドし、3scale を OpenShift にデプロイします。
2.1. 作業を開始する前に リンクのコピーリンクがクリップボードにコピーされました!
2.1.1. Oracle ソフトウェアコンポーネントの取得 リンクのコピーリンクがクリップボードにコピーされました!
カスタムの 3scale システムコンテナーイメージをビルドする前に、以下の Oracle ソフトウェアコンポーネントのサポート対象バージョンを取得する必要があります。
- Oracle Instant Client Package Basic または Basic Light
- Oracle Instant Client パッケージ SDK
- Oracle Instant Client パッケージ ODBC
2.1.2. 会議の前提条件 リンクのコピーリンクがクリップボードにコピーされました!
以下の前提条件も満たす必要があります。
- OpenShift クラスターからアクセスできる Oracle Database の サポート対象バージョン
- インストール手順に必要な Oracle Database の system ユーザーへのアクセス
- Red Hat 3scale 2.4 amp.yml テンプレート
2.2. Oracle Database の準備 リンクのコピーリンクがクリップボードにコピーされました!
新規データベースの作成
Oracle Database が 3scale と動作するようにするには、以下の設定が必要です。
ALTER SYSTEM SET max_string_size=extended SCOPE=SPFILE;
ALTER SYSTEM SET max_string_size=extended SCOPE=SPFILE;Copy to Clipboard Copied! Toggle word wrap Toggle overflow ALTER SYSTEM SET compatible='12.2.0.1' SCOPE=SPFILE;
ALTER SYSTEM SET compatible='12.2.0.1' SCOPE=SPFILE;Copy to Clipboard Copied! Toggle word wrap Toggle overflow データベースの詳細を収集します。
3scale の設定に必要な以下の情報を取得します。
- Oracle Database の URL
- Oracle Database の サービス名
- Oracle Database の system ユーザー名およびパスワード
- Oracle Database の サービス名
Oracle Database で新規データベースを作成する方法については、Oracle のドキュメント を参照してください。
2.3. システムイメージのビルド リンクのコピーリンクがクリップボードにコピーされました!
- 3scale-amp-openshift-templates github リポジトリーのクローンを作成し ます。
-
Oracle Database の Instant Client パッケージファイルを
3scale-amp-openshift-templates/amp/system-oracle/oracle-client-filesディレクトリーに置きます。 -f オプションで
build.ymlOpenShift テンプレートを指定して、oc new-appコマンドを実行します。oc new-app -f build.yml
$ oc new-app -f build.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -f オプションで、
amp.ymlOpenShift テンプレートおよび -p オプションを指定し、WILDCARD_DOMAINパラメーターに OpenShift クラスターのドメインを指定して、oc new-appコマンドを実行します。oc new-app -f amp.yml -p WILDCARD_DOMAIN=example.com
$ oc new-app -f amp.yml -p WILDCARD_DOMAIN=example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 「Oracle Database の準備
」セクションで収集した以下の情報を指定して、loop で以下のシェルを入力します。-
{USER}: Oracle Database で 3scale を表すユーザー名 -
{PASSWORD}:USERのパスワード -
{ORACLE_DB_URL}: Oracle Database の URL -
{DATABASE}: Oracle Database で作成したデータベースのサービス名 {PORT}: Oracle Database のポート番号for dc in system-app system-resque system-sidekiq system-sphinx; do oc env dc/$dc --overwrite DATABASE_URL="oracle-enhanced://{USER}:{PASSWORD}@{ORACLE_DB_URL}:{PORT}/{DATABASE}"; donefor dc in system-app system-resque system-sidekiq system-sphinx; do oc env dc/$dc --overwrite DATABASE_URL="oracle-enhanced://{USER}:{PASSWORD}@{ORACLE_DB_URL}:{PORT}/{DATABASE}"; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
以下の
oc patchコマンドを入力し、上記の手順で指定したUSER、PASSWORD、ORACLE_DB_URL、PORT、およびDATABASEの値を指定します。oc patch dc/system-app -p '[{"op": "replace", "path": "/spec/strategy/rollingParams/pre/execNewPod/env/1/value", "value": "oracle-enhanced://{USER}:{PASSWORD}@{ORACLE_DB_URL}:{PORT}/{DATABASE}"}]' --type=json$ oc patch dc/system-app -p '[{"op": "replace", "path": "/spec/strategy/rollingParams/pre/execNewPod/env/1/value", "value": "oracle-enhanced://{USER}:{PASSWORD}@{ORACLE_DB_URL}:{PORT}/{DATABASE}"}]' --type=jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の
oc patchコマンドを入力し、SYSTEM_PASSWORDフィールドに独自の Oracle Database の system ユーザーのパスワードを指定します。oc patch dc/system-app -p '[{"op": "add", "path": "/spec/strategy/rollingParams/pre/execNewPod/env/-", "value": {"name": "ORACLE_SYSTEM_PASSWORD", "value": "SYSTEM_PASSWORD"}}]' --type=json$ oc patch dc/system-app -p '[{"op": "add", "path": "/spec/strategy/rollingParams/pre/execNewPod/env/-", "value": {"name": "ORACLE_SYSTEM_PASSWORD", "value": "SYSTEM_PASSWORD"}}]' --type=jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc start-buildコマンドを入力し、新しいシステムイメージをビルドします。oc start-build 3scale-amp-system-oracle --from-dir=.
oc start-build 3scale-amp-system-oracle --from-dir=.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第3章 オンプレミス型 3scale API Management インストールガイド リンクのコピーリンクがクリップボードにコピーされました!
本書では、OpenShift テンプレートを使用して Red Hat 3scale API Management 2.4(オンプレミス)を OpenShift にインストールする手順を説明します。
3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- UTC 用に 3scale API Management サーバーを設定する必要があります(協定世界時)。
- OpenShift で(自己署名ではなく)有効な HTTPS 証明書を設定する必要があります。詳細は、「 Create Secure Routes on OpenShift 」を参照してください。
3.2. 3scale OpenShift テンプレート リンクのコピーリンクがクリップボードにコピーされました!
3scale API Management 2.4 は OpenShift テンプレートを提供します。このテンプレートを使用して、3scale API Management を OpenShift Container Platform にデプロイすることができます。
3scale API Management テンプレートは、以下で構成されています。
- 2 つの組み込み APIcast API ゲートウェイ
- 1 つの 3scale API Management 管理ポータルおよび永続ストレージを持つデベロッパーポータル
3.3. システム要件 リンクのコピーリンクがクリップボードにコピーされました!
本セクションでは、3scale API Management OpenShift テンプレートの要件について説明します。
3.3.1. 環境要件 リンクのコピーリンクがクリップボードにコピーされました!
3scale API Management には、「Red Hat 3scale API Management Supported Configurations」で規定される環境が必要です。
永続ボリューム:
- Redis および MySQL の永続用の 3 つの RWO (ReadWriteOnce) 永続ボリューム
- CMS および System-app Assets 用の 1 つの RWX (ReadWriteMany) 永続ボリューム
RWX 永続ボリュームはグループ書き込みができるように設定する必要があります。必要なアクセスモードをサポートする永続ボリュームタイプのリストは、OpenShift のドキュメント を参照してください。
3.3.2. ハードウェア要件 リンクのコピーリンクがクリップボードにコピーされました!
ハードウェア要件は、使用の必要性に応じて異なります。Red Hat は、テストを行い個々の要件を満たすように環境を設定することを推奨します。OpenShift 上の 3scale の環境を設定する場合、以下が推奨されます。
- クラウド環境へのデプロイメントには、コンピュートタスクに最適化したノードを使用します (AWS c4.2xlarge または Azure Standard_F8)。
- メモリーの要件が現在のノードで使用できる RAM よりも大きい場合、非常に大きなインストールでは、Redis に別のノードが必要になることがあります (AWS M4 シリーズまたは Azure Av2 シリーズ)。
- ルーティングタスクとコンピュートタスクには別のノードを使用します。
- 3scale 固有のタスクには専用のコンピュートノードを使用します。
-
バックエンドリスナーの
PUMA_WORKERS変数をコンピュートノードのコア数に設定します。
3.4. ノードおよびエンタイトルメントの設定 リンクのコピーリンクがクリップボードにコピーされました!
3scale を OpenShift にデプロイする前に、ノードおよびお使いの環境が Red Hat からイメージを取得するのに必要なエンタイトルメントを設定する必要があります。
以下の手順を実行し、エンタイトルメントを設定します。
- 各ノードに Red Hat Enterprise Linux (RHEL) をインストールします。
- インターフェース または コマンドライン で Red Hat Subscription Manager (RHSM) を使用し、Red Hat にノードを登録します。
- RHSM を使用して ノードを 3scale サブスクリプションに割り当てます。
以下の要件に準拠して、ノードに OpenShift をインストールします。
- サポート対象バージョンの OpenShift を使用する。
- 複数書き込みをサポートするファイルシステムで 永続ストレージ を設定します。
- OpenShift コマンドラインインターフェース をインストールします。
サブスクリプションマネージャーを使用して、
rhel-7-server-3scale-amp-2.4-rpmsリポジトリーへのアクセスを有効にします。sudo subscription-manager repos --enable=rhel-7-server-3scale-amp-2.4-rpms
sudo subscription-manager repos --enable=rhel-7-server-3scale-amp-2.4-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 3scale-amp-templateをインストールします。テンプレートは/opt/amp/templatesに保存されます。sudo yum install 3scale-amp-template
sudo yum install 3scale-amp-templateCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5. テンプレートを使用した OpenShift への 3scale のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
3.5.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 第 3 章およびエンタイトルメントの設定 セクションで 指定された OpenShift クラスター。
- OpenShift クラスターに対して解決する ドメイン (できればワイルドカード)
- Red Hat コンテナーカタログ へのアクセス
- (オプション) 稼働中の電子メール機能用 SMTP サーバー
以下の手順に従って、a .yml テンプレートを使用して 3scale API Management を OpenShift にインストールします。
3.5.2. 3scale テンプレートのインポート リンクのコピーリンクがクリップボードにコピーされました!
3scale API Management テンプレートを OpenShift クラスターにインポートするには、以下の手順を実施します。
ターミナルセッションから、OpenShift にクラスター管理者としてログインします。
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトを選択するか新しいプロジェクトを作成します。
oc project <project_name>
oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc new-project <project_name>
oc new-project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc new-appコマンドを入力します。-
--fileオプションを使用して、ノードおよびエンタイトルメント の設定セクションの一部としてダウンロードした amp.yml ファイルへのパスを指定します。 -
--paramオプションを使用して、WILDCARD_DOMAINパラメーターに OpenShift クラスターのドメインを設定します。 オプションで
、--paramオプションを使用して、WILDCARD_POLICYパラメーター をsubdomainに設定してワイルドカードドメインルーティングを有効にします。ワイルドカードルーティングを有効にしない場合:
oc new-app --file /opt/amp/templates/amp.yml --param WILDCARD_DOMAIN=<WILDCARD_DOMAIN>
oc new-app --file /opt/amp/templates/amp.yml --param WILDCARD_DOMAIN=<WILDCARD_DOMAIN>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ワイルドカードルーティングを有効にする場合:
oc new-app --file /opt/amp/templates/amp.yml --param WILDCARD_DOMAIN=<WILDCARD_DOMAIN> --param WILDCARD_POLICY=Subdomain
oc new-app --file /opt/amp/templates/amp.yml --param WILDCARD_DOMAIN=<WILDCARD_DOMAIN> --param WILDCARD_POLICY=SubdomainCopy to Clipboard Copied! Toggle word wrap Toggle overflow ターミナルには、マスターおよびテナント URL と、新たに作成された 3scale API Management 管理ポータルのクレデンシャルが表示されます。この出力には以下の情報が含まれます。
- マスター管理者のユーザー名
- マスターのパスワード
- マスターのトークン情報
- テナントのユーザー名
- テナントのパスワード
- テナントのトークン情報
-
https://user-admin.3scale-project.example.com に admin/xXxXyz123 としてログインします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 後で確認できるようにするため、詳細を書き留めておきます。
注記3scale API Management が OpenShift に完全にデプロイして、ログインおよびクレデンシャルが有効になるまで、数分かかることがあります。
詳細情報
OpenShift でのワイルドカードドメインに関する詳細は、(サブドメインの )ワイルドカードルートの使用について参照してください。
3.5.3. SMTP 変数の設定(任意) リンクのコピーリンクがクリップボードにコピーされました!
OpenShift は、メールを使用して 通知を送信し、新規ユーザーを招待 します。これらの機能を使用する場合は、独自の SMTP サーバーを提供し、SMTP 設定マップで SMTP 変数を設定する必要があります。
SMTP ConfigMap で SMTP 変数を設定するには、以下の手順を実施します。
OpenShift にログインしていない場合はログインします。
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow SMTP ConfigMap の変数を設定します。
oc patchコマンドを使用してconfigmapおよびsmtpオブジェクトを指定し、続いて-pオプションを指定し、以下の変数に対して JSON 形式で新しい値を指定します。Expand 変数
説明
address
リモートメールサーバーをリレーとして指定できます。
username
メールサーバーのユーザー名を指定します。
password
メールサーバーのパスワードを指定します。
domain
HELO ドメインを指定します。
port
メールサーバーが新しい接続をリッスンするポートを指定します。
authentication
メールサーバーの認証タイプを指定します。指定できる値は
plain(パスワードをクリアテキストで送信)、login(パスワードを Base64 エンコードで送信)、またはcram_md5(ハッシュ関数に Message Digest 5 アルゴリズムを使用し認証情報を交換) です。openssl.verify.mode
TLS の使用時に OpenSSL が証明書をチェックする方法を指定します。指定できる値は
none、peer、client_once、またはfail_if_no_peer_certです。例
oc patch configmap smtp -p '{"data":{"address":"<your_address>"}}' oc patch configmap smtp -p '{"data":{"username":"<your_username>"}}' oc patch configmap smtp -p '{"data":{"password":"<your_password>"}}'oc patch configmap smtp -p '{"data":{"address":"<your_address>"}}' oc patch configmap smtp -p '{"data":{"username":"<your_username>"}}' oc patch configmap smtp -p '{"data":{"password":"<your_password>"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
configmap 変数を設定した後、
system-appおよびsystem-sidekiqPod を再デプロイします。oc rollout latest dc/system-app oc rollout latest dc/system-sidekiq
oc rollout latest dc/system-app oc rollout latest dc/system-sidekiqCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.6. 3scale テンプレートパラメーター リンクのコピーリンクがクリップボードにコピーされました!
テンプレートパラメーターは、デプロイ中およびデプロイメント後の 3scale API Management yml テンプレートの環境変数を設定します。
| 名前 | 説明 | デフォルト値 | 必須/任意 |
| APP_LABEL | オブジェクトアプリのラベルに使用されます。 | "3scale-api-management" | はい |
| ZYNC_DATABASE_PASSWORD | PostgreSQL 接続ユーザーのパスワード。指定のない場合は無作為に生成されます。 | 該当せず | 必須 |
| ZYNC_SECRET_KEY_BASE | Zync の秘密鍵ベース。指定のない場合は無作為に生成されます。 | 該当せず | 必須 |
| ZYNC_AUTHENTICATION_TOKEN | Zync の認証トークン。指定のない場合は無作為に生成されます。 | 該当せず | 必須 |
| AMP_RELEASE | 3scale API Management リリースタグ | 2.4.0 | はい |
| ADMIN_PASSWORD | 無作為に生成される 3scale API Management 管理者アカウントのパスワード。 | 該当なし | 必須 |
| ADMIN_USERNAME | 3scale API Management 管理者アカウントのユーザー名 | admin | はい |
| APICAST_ACCESS_TOKEN | APIcast が設定のダウンロードに使用する読み取り専用アクセストークン | 該当せず | 必須 |
| ADMIN_ACCESS_TOKEN | すべての API をスコープとし、書き込みアクセス権限が設定された管理者アクセストークン | 該当せず | 任意 |
| WILDCARD_DOMAIN |
ワイルドカードルートのルートドメイン。たとえば、ルートドメイン | 該当せず | 必須 |
| WILDCARD_POLICY | 値を「Subdomain」として設定して、組み込まれた APIcast ゲートウェイへのワイルドカードルートを有効にします。 |
| はい |
| TENANT_NAME | ルート下のテナント名。-admin 接尾辞を付けて管理 UI が利用できます。 | 3scale | はい |
| MYSQL_USER | データベースのアクセスに使用される MySQL ユーザーのユーザー名 | mysql | はい |
| MYSQL_PASSWORD | MySQL ユーザーのパスワード | 該当せず | 必須 |
| MYSQL_DATABASE | アクセスされた MySQL データベースの名前 | system | はい |
| MYSQL_ROOT_PASSWORD | Root ユーザーのパスワード | 該当せず | 必須 |
| SYSTEM_BACKEND_USERNAME | 内部 3scale api auth の内部 3scale API ユーザー名 | 3scale_api_user | はい |
| SYSTEM_BACKEND_PASSWORD | 内部 3scale api auth の内部 3scale API パスワード | 該当せず | 必須 |
| REDIS_IMAGE | 使用する Redis イメージ | registry.access.redhat.com/rhscl/redis-32-rhel7:3.2 | はい |
| MYSQL_IMAGE | 使用する Mysql イメージ | registry.access.redhat.com/rhscl/mysql-57-rhel7:5.7 | はい |
| MEMCACHED_IMAGE | 使用する Memcached イメージ | registry.access.redhat.com/3scale-amp20/memcached:1.4.15 | はい |
| POSTGRESQL_IMAGE | 使用する Postgresql イメージ | registry.access.redhat.com/rhscl/postgresql-95-rhel7:9.5 | はい |
| AMP_SYSTEM_IMAGE | 使用する 3scale システムイメージ | registry.access.redhat.com/3scale-amp24/system | はい |
| AMP_BACKEND_IMAGE | 使用する 3scale バックエンドイメージ | registry.access.redhat.com/3scale-amp24/backend | はい |
| AMP_APICAST_IMAGE | 使用する 3scale APIcast イメージ | registry.access.redhat.com/3scale-amp24/apicast-gateway | はい |
| AMP_ROUTER_IMAGE | 使用する 3scale ワイルドカードルーターイメージ | registry.access.redhat.com/3scale-amp22/wildcard-router | はい |
| AMP_ZYNC_IMAGE | 使用する 3scale Zync イメージ | registry.access.redhat.com/3scale-amp24/zync | はい |
| SYSTEM_BACKEND_SHARED_SECRET | バックエンドからシステムにイベントをインポートするための共有シークレット | 該当せず | 必須 |
| SYSTEM_APP_SECRET_KEY_BASE | システムアプリケーションの秘密鍵ベース | 該当せず | 必須 |
| APICAST_MANAGEMENT_API | APIcast Management API のスコープ。disable、status、または debug を設定できます。ヘルスチェックには最低でも status が必要です。 | status | いいえ |
| APICAST_OPENSSL_VERIFY | 設定のダウンロード時に OpenSSL ピア検証を有効または無効にします。true または false を設定できます。 | false | いいえ |
| APICAST_RESPONSE_CODES | APIcast のロギングレスポンスコードを有効にします。 | true | 任意 |
| APICAST_REGISTRY_URL | APIcast ポリシーの場所に解決する URL | はい | |
| MASTER_USER | マスター管理者アカウントのユーザー名 | master | はい |
| MASTER_NAME |
マスター管理ポータルのサブドメイン値。 | master | はい |
| MASTER_PASSWORD | 無作為に生成されるマスター管理者のパスワード | 該当せず | 必須 |
| MASTER_ACCESS_TOKEN | API 呼び出しのマスターレベル権限が設定されたトークン | 該当せず | 必須 |
| IMAGESTREAM_TAG_IMPORT_INSECURE | イメージのインポート中にサーバーが証明書の検証を回避できる、または HTTP 経由で直接接続できる場合は、true を設定します。 |
| はい |
3.7. OpenShift 上で 3scale と APIcast を使用する リンクのコピーリンクがクリップボードにコピーされました!
APIcast は 3scale SaaS 用の API Manager と OpenShift Container Platform におけるオンプレミスインストール用 API Manager で利用できます。両構成で、設定手順は異なります。本セクションでは、OpenShift 上で API Manager と共に APIcast をデプロイする方法を説明します。
3.7.1. 3scale が含まれる既存の OpenShift クラスターでの APIcast テンプレートのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
3scale API Management OpenShift テンプレートには、デフォルトで 2 つの組み込み APIcast API ゲートウェイが含まれています。より多くの API ゲートウェイが必要な場合や、別の APIcast デプロイメントが必要な場合は、追加の APIcast テンプレートを OpenShift クラスターにデプロイすることができます。
追加の API ゲートウェイを OpenShift クラスターにデプロイするには、以下の手順を実施します。
以下の設定で アクセストークン を作成します。
- スコープ: Account Management API
- アクセス権限: 読み取り専用
APIcast クラスターにログインします。
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow APIcast が 3scale API Management と通信できるようにするシークレットを作成します。
new-basicauth、apicast-configuration-url-secretを指定し、--passwordパラメーターで 3scale API Management デプロイメントのアクセストークン、テナント名、およびワイルドカードドメインを設定します。oc secret new-basicauth apicast-configuration-url-secret --password=https://<APICAST_ACCESS_TOKEN>@<TENANT_NAME>-admin.<WILDCARD_DOMAIN>
oc secret new-basicauth apicast-configuration-url-secret --password=https://<APICAST_ACCESS_TOKEN>@<TENANT_NAME>-admin.<WILDCARD_DOMAIN>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記TENANT_NAMEは、管理 UI が利用可能なルート下の名前です。TENANT_NAME3scale のデフォルト値。3scale API Management デプロイメントでカスタム値を使用した場合は、ここでその値を使用する必要があります。APIcast テンプレート
apicast.ymlをローカルマシンにインストールします。sudo yum install 3scale-amp-apicast-gateway-template
sudo yum install 3scale-amp-apicast-gateway-templateCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドにより、APIcast テンプレートをディレクトリー
/opt/amp/templatesにインストールします。--fileオプションでapicast.ymlファイルを指定して、oc new-appコマンドで APIcast テンプレートをインポートします。oc new-app --file /opt/amp/templates/apicast.yml
oc new-app --file /opt/amp/templates/apicast.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.7.2. 3scale が含まれる OpenShift クラスター外部の OpenShift クラスターから APIcast を接続 リンクのコピーリンクがクリップボードにコピーされました!
3scale API Management クラスター外部の別の OpenShift クラスターに APIcast をデプロイする場合は、パブリックルート経由で接続する必要があります。
以下の設定で アクセストークン を作成します。
- スコープ: Account Management API
- アクセス権限: 読み取り専用
APIcast クラスターにログインします。
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow APIcast が 3scale API Management と通信できるようにするシークレットを作成します。
new-basicauth、apicast-configuration-url-secretを指定し、--passwordパラメーターで 3scale API Management デプロイメントのアクセストークン、テナント名、およびワイルドカードドメインを設定します。oc secret new-basicauth apicast-configuration-url-secret --password=https://<APICAST_ACCESS_TOKEN>@<TENANT_NAME>-admin.<WILDCARD_DOMAIN>
oc secret new-basicauth apicast-configuration-url-secret --password=https://<APICAST_ACCESS_TOKEN>@<TENANT_NAME>-admin.<WILDCARD_DOMAIN>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記TENANT_NAMEは、管理 UI が利用可能なルート下の名前です。'TENANT_NAME' のデフォルト値は 3scale です。3scale API Management デプロイメントでカスタム値を使用した場合は、ここでその値を使用する必要があります。oc new-app コマンドを使用して、OpenShift クラスター外部の OpenShift クラスターに APIcast をデプロイします。
--fileオプションでapicast.ymlファイルのファイルパスを指定します。oc new-app --file /path/to/file/apicast.yml
oc new-app --file /path/to/file/apicast.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow apicast
BACKEND_ENDPOINT_OVERRIDE環境変数を URLバックエンドに設定し、続いて3scale API Management デプロイメントが含まれる OpenShift クラスターのワイルドカードドメインを更新します。oc env dc/apicast --overwrite BACKEND_ENDPOINT_OVERRIDE=https://backend-<TENANT_NAME>.<WILDCARD_DOMAIN>
oc env dc/apicast --overwrite BACKEND_ENDPOINT_OVERRIDE=https://backend-<TENANT_NAME>.<WILDCARD_DOMAIN>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.7.3. 他のデプロイメントからの APIcast の接続 リンクのコピーリンクがクリップボードにコピーされました!
他のプラットフォームに APIcast をデプロイした後、3scale API Management OpenShift クラスターの BACKEND_ENDPOINT_OVERRIDE 環境変数を設定して、OpenShift 上の 3scale API Management に接続できます。
3scale API Management OpenShift クラスターにログインします。
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow system-app オブジェクト
BACKEND_ENDPOINT_OVERRIDE環境変数を設定します。- ネイティブインストールを使用している場合: BACKEND_ENDPOINT_OVERRIDE=https://backend.<your_openshift_subdomain> bin/apicast
- Docker コンテナー環境を使用している場合: docker run -e BACKEND_ENDPOINT_OVERRIDE=https://backend.<your_openshift_subdomain>
3.7.4. Built-in APIcast のデフォルト動作の変更 リンクのコピーリンクがクリップボードにコピーされました!
外部の APIcast デプロイメントでは、APIcast OpenShift テンプレートのテンプレートパラメーターを変更することで、デフォルトの動作を変更できます。
Embedded APIcast デプロイメントでは、3scale API Management および APIcast は単一のテンプレートからデプロイされます。Embedded APIcast デプロイメントのデフォルト動作を変更する場合は、デプロイ後に環境変数を変更する必要があります。
3.7.5. 内部サービスルートを介した、単一 OpenShift クラスター上の複数 APIcast デプロイメントの接続 リンクのコピーリンクがクリップボードにコピーされました!
同じ OpenShift クラスターに複数の APIcast ゲートウェイをデプロイする場合、デフォルトの外部ルート設定ではなく、バックエンドリスナーサービスを介して内部ルートを使用して接続するよう設定できます。
内部サービスルート経由で接続するには、OpenShift SDN プラグインがインストールされている必要があります。接続方法は、インストールされている SDN によって異なります。
ovs-subnet
ovs-subnet OpenShift SDN プラグインを使用している場合は、以下の手順を実施して内部ルート経由で接続します。
OpenShift クラスターにログインしていない場合はログインします。
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow apicast.ymlファイルへのパスを指定してoc new-appコマンドを入力します。--paramオプションを使用して、BACKEND_ENDPOINT_OVERRIDEパラメーターを OpenShift クラスターの 3scale API Management プロジェクトのドメインに設定します。oc new-app -f apicast.yml --param BACKEND_ENDPOINT_OVERRIDE=http://backend-listener.<THREESCALE_PROJECT>.svc.cluster.local:3000
oc new-app -f apicast.yml --param BACKEND_ENDPOINT_OVERRIDE=http://backend-listener.<THREESCALE_PROJECT>.svc.cluster.local:3000Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ovs-multitenant
'ovs-multitenant' Openshift SDN プラグインを使用している場合は、以下の手順を実施して内部ルート経由で接続します。
OpenShift クラスターにログインしていない場合はログインします。
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow admin として、pod
-network およびオプションで、両方のプロジェクト間の通信を設定するために、join-projectsoadmコマンドを指定します。oadm pod-network join-projects --to=<THREESCALE_PROJECT> <APICAST_PROJECT>
oadm pod-network join-projects --to=<THREESCALE_PROJECT> <APICAST_PROJECT>Copy to Clipboard Copied! Toggle word wrap Toggle overflow apicast.ymlファイルへのパスを指定してoc new-appオプションを入力します。-
--paramオプションを使用して、BACKEND_ENDPOINT_OVERRIDEパラメーターを OpenShift クラスターの 3scale API Management プロジェクトのドメインに設定します。
-
oc new-app -f apicast.yml --param BACKEND_ENDPOINT_OVERRIDE=http://backend-listener.<THREESCALE_PROJECT>.svc.cluster.local:3000
oc new-app -f apicast.yml --param BACKEND_ENDPOINT_OVERRIDE=http://backend-listener.<THREESCALE_PROJECT>.svc.cluster.local:3000
詳細情報
Openshift SDN およびプロジェクトネットワークの分離についての情報は、「OpenShift SDN 」を参照してください。
3.8. 7.トラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
本セクションでは、典型的なインストールの問題と、その問題を解決するためのアドバイスについて説明します。
3.8.1. 以前のデプロイメントがダーティーな永続ボリューム要求を離れる リンクのコピーリンクがクリップボードにコピーされました!
問題
以前のデプロイメントがダーティーな永続ボリューム要求 (PVC) を残そうとするため、MySQL コンテナーの起動に失敗する。
原因
OpenShift のプロジェクトを削除しても、それに関連する PVC は消去されない。
解決策
oc get pvcコマンドを使用してエラーのある MySQL データが含まれる PVC を探します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
OpenShift UI の
cancel deploymentをクリックして、system-mysql Pod のデプロイメントを停止します。 - MySQL パス以下にあるものすべてを削除し、ボリュームをクリーンアップします。
-
新たに
system-mysqlのデプロイメントを開始します。
3.8.2. 誤って Docker レジストリーからプルされる リンクのコピーリンクがクリップボードにコピーされました!
問題
インストール中に以下のエラーが発生する。
svc/system-redis - 1EX.AMP.LE.IP:6379
dc/system-redis deploys docker.io/rhscl/redis-32-rhel7:3.2-5.3
deployment #1 failed 13 minutes ago: config change
svc/system-redis - 1EX.AMP.LE.IP:6379
dc/system-redis deploys docker.io/rhscl/redis-32-rhel7:3.2-5.3
deployment #1 failed 13 minutes ago: config change
原因
OpenShift は docker コマンドを実行し、コンテナーイメージを検索およびプルします。このコマンドは、registry. access Docker レジストリーを参照します。
.redhat.com Red Hat コンテナーレジストリーではなく、docker. io
これは、システムに予期せぬバージョンの Docker コンテナー環境が含まれる場合に発生します。
解決方法
適切なバージョン の Docker コンテナー環境を使用します。
3.8.3. 永続ボリュームがローカルでマウントされている場合の MySQL の権限の問題 リンクのコピーリンクがクリップボードにコピーされました!
問題
system-msql Pod がクラッシュし、デプロイされないため、それに依存する他のシステムのデプロイメントに失敗する。Pod ログに以下のエラーが記録される。
[ERROR] Cannot start server : on unix socket: Permission denied [ERROR] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ? [ERROR] Aborting
[ERROR] Cannot start server : on unix socket: Permission denied
[ERROR] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?
[ERROR] Aborting
原因
MySQL プロセスが不適切なユーザー権限で起動されている。
解決方法
永続ボリュームに使用されるディレクトリーには、root グループの書き込み権限が必要です。MySQL サービスは root グループの別のユーザーとして実行されるため、root ユーザーの読み取り/書き込み権限では不十分です。root ユーザーとして以下のコマンドを実行します。
chmod -R g+w /path/for/pvs
chmod -R g+w /path/for/pvsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、SELinux がアクセスをブロックしないようにします。
chcon -Rt svirt_sandbox_file_t /path/for/pvs
chcon -Rt svirt_sandbox_file_t /path/for/pvsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.8.4. ロゴまたはイメージをアップロードできない リンクのコピーリンクがクリップボードにコピーされました!
問題
ロゴをアップロードできず、system-app ログに以下のエラーが表示される。
Errno::EACCES (Permission denied @ dir_s_mkdir - /opt/system/public//system/provider-name/2
Errno::EACCES (Permission denied @ dir_s_mkdir - /opt/system/public//system/provider-name/2
原因
OpenShift が永続ボリュームに書き込みを行うことがでない。
解決方法
OpenShift が永続ボリュームに書き込みを行えるようにします。永続ボリュームのグループ所有者を root グループにし、またグループによる書き込みを可能にする必要があります。
3.8.5. OpenShift でのセキュアなルートの作成 リンクのコピーリンクがクリップボードにコピーされました!
問題
OpenShift で新しいサービスとルートを作成した後に、テストコールが動作しない。curl 経由のダイレクトコールも失敗し、service not available が出力される。
原因
3scale はデフォルトで HTTPS ルートが必要で、OpenShift ルートはセキュアではない。
解決方法
OpenShift のルーター設定で secure route チェックボックスが選択されていることを確認します。
3.8.6. 3scale 以外のプロジェクト上の APIcast リンクのコピーリンクがクリップボードにコピーされました!
問題
APIcast のデプロイに失敗する (Pod が青にならない)。以下のエラーがログに記録されます。
update acceptor rejected apicast-3: pods for deployment "apicast-3" took longer than 600 seconds to become ready
update acceptor rejected apicast-3: pods for deployment "apicast-3" took longer than 600 seconds to become ready
以下のエラーが Pod に表示されます。
Error synching pod, skipping: failed to "StartContainer" for "apicast" with RunContainerError: "GenerateRunContainerOptions: secrets \"apicast-configuration-url-secret\" not found"
Error synching pod, skipping: failed to "StartContainer" for "apicast" with RunContainerError: "GenerateRunContainerOptions: secrets \"apicast-configuration-url-secret\" not found"
原因
シークレットが適切に設定されていない。
解決策
APIcast v3 でシークレットを作成する時に apicast-configuration-url-secret を指定します。
oc secret new-basicauth apicast-configuration-url-secret --password=https://<ACCESS_TOKEN>@<TENANT_NAME>-admin.<WILDCARD_DOMAIN>
oc secret new-basicauth apicast-configuration-url-secret --password=https://<ACCESS_TOKEN>@<TENANT_NAME>-admin.<WILDCARD_DOMAIN>
第4章 オンプレミス型 3scale API Management の操作およびスケーリングガイド リンクのコピーリンクがクリップボードにコピーされました!
4.1. はじめに リンクのコピーリンクがクリップボードにコピーされました!
本書では、オンプレミス型 Red Hat 3scale AMP 2.4 インストール環境での操作およびスケーリングタスクについて説明します。
4.1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
サポート対象バージョンの OpenShift にインストールされた初期設定済みのオンプレミス型 AMP インスタンス
本書は、ノートパソコンやこれに類するエンドユーザー機器上のローカルインストールを対象としていません。
4.1.2. 詳細はこちら リンクのコピーリンクがクリップボードにコピーされました!
4.2. APIcast の再デプロイ リンクのコピーリンクがクリップボードにコピーされました!
AMP On-Premises をデプロイし、選択した APIcast デプロイメント方法を選択したら、AMP ダッシュボードでシステムの変更をテストし、プロモートすることができます。デフォルトでは、OpenShift 上の APIcast デプロイメントでは (組み込み型のデプロイおよび他の OpenShift クラスター上のデプロイの両方で)、AMP UI を介して変更をステージング環境用と実稼働環境用のゲートウェイにパブリッシュできるように設定されています。
APIcast を OpenShift に再デプロイします。
- システムに変更を加えます。
- UI でステージング環境にデプロイしてテストします。
- UI で実稼働環境にプロモートします。
デフォルトでは、APIcast はプロモートされた更新を 5 分ごとに取得し、パブリッシュします。
Docker コンテナー環境またはネイティブインストールで APIcast を使用している場合は、ステージング環境用と実稼働環境用のゲートウェイを設定し、パブリッシュした変更をゲートウェイが取得する頻度を設定する必要があります。APIcast ゲートウェイを設定したら、AMP UI で APIcast を再デプロイできます。
Docker コンテナー環境またはネイティブインストールに APIcast を再デプロイするには、以下を実行します。
- APIcast ゲートウェイを設定し、オンプレミス型 AMP に接続します。
- システムに変更を加えます。
- UI でステージング環境にデプロイしてテストします。
- UI で実稼働環境にプロモートします。
APIcast は、設定された頻度でプロモートされた更新を取得しパブリッシュします。
4.3. APIcast 組み込みワイルドカードルーティング リンクのコピーリンクがクリップボードにコピーされました!
AMP デプロイメントでサブドメインレベルでワイルドカードドメインルーティングをサポートする組み込み APIcast ゲートウェイ。この機能により、実稼働およびステージングゲートウェイの公開ベース URL のサブドメインに名前を付けることができます。この機能を使用するには、オンプレミスのインストール時に 有効にする必要があります。
ワイルドカードルーティングをサポートする OpenShift Container Platform バージョンを使用していることを確認します。サポート対象バージョンの詳細は「Red Hat Fuse でサポートされる構成 」を参照してください。
AMP は DNS 機能を提供しないため、指定された公開ベース URL は、デプロイされた OpenShift クラスターの WILDCARD_DOMAIN パラメーターで指定された DNS 設定と一致する必要があります。
4.3.1. ワイルドカードの変更 リンクのコピーリンクがクリップボードにコピーされました!
ワイルドカードを変更するには、以下の手順を実行します。
- AMP にログインします。
- API ゲートウェイ設定ページに移動します: APIs → your API → Integration → edit APIcast configuration
任意の文字列接頭辞を使用してステージング環境および実稼働環境用の公開ベース URL を変更し、以下の要件に従います。
- API エンドポイントは数字の文字で開始してはいけない
以下は、ドメイン example.com 上のステージングゲートウェイの有効なワイルドカードの例です。
apiname-staging.example.com
apiname-staging.example.com
詳細情報
ルーティングの詳細は、OpenShift のドキュメント を参照してください。
4.4. オンプレミス型 AMP のスケールアップ リンクのコピーリンクがクリップボードにコピーされました!
4.4.1. ストレージのスケールアップ リンクのコピーリンクがクリップボードにコピーされました!
APIcast デプロイメントの規模が大きくなると、利用可能なストレージの量を増やす必要が生じる可能性があります。ストレージをスケールアップする方法は、永続ストレージに使用しているファイルシステムのタイプによって異なります。
ネットワークファイルシステム (NFS) を使用している場合は、oc edit pv コマンドを使用して永続ボリュームをスケールアップできます。
oc edit pv <pv_name>
oc edit pv <pv_name>
他のストレージ手段を使用している場合は、以降のセクションに挙げる方法のいずれかを使用して、永続ボリュームを手動でスケールアップする必要があります。
4.4.1.1. 方法 1: 永続ボリュームのバックアップおよびスワップ リンクのコピーリンクがクリップボードにコピーされました!
- 既存の永続ボリューム上のデータをバックアップします。
- 新しいサイズ要件に合わせて、ターゲット永続ボリュームを作成し、アタッチします。
-
事前バインド型の永続ボリューム要求を作成し、新しい PVC のサイズと永続ボリュームの名前を指定します。永続ボリューム名には
volumeNameフィールドを使用します。 - 新しく作成した PV に、バックアップからデータを復元します。
新しい PV の名前でデプロイメント設定を変更します。
oc edit dc/system-app
oc edit dc/system-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 新しい PV が設定され正常に機能していることを確認します。
- 以前の PVC を削除して、それが要求していたリソースを解放します。
4.4.1.2. 方法 2: AMP のバックアップおよび復元 リンクのコピーリンクがクリップボードにコピーされました!
- 既存の永続ボリューム上のデータをバックアップします。
- 3scale Pod をシャットダウンします。
- 新しいサイズ要件に合わせて、ターゲット永続ボリュームを作成し、アタッチします。
- 新しく作成した PV に、バックアップからデータを復元します。
事前バインド型の永続ボリューム要求を作成します。以下の項目を指定します。
- 新しい PVC のサイズ
-
永続ボリューム名 (
volumeNameフィールドを使用)
- AMP.yml をデプロイします。
- 新しい PV が設定され正常に機能していることを確認します。
- 以前の PVC を削除して、それが要求していたリソースを解放します。
4.4.2. パフォーマンスのスケールアップ リンクのコピーリンクがクリップボードにコピーされました!
4.4.2.1. オンプレミス型 3scale デプロイメントの設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、3scale デプロイメントは Pod ごとに 1 つのプロセスを実行します。Pod ごとに実行するプロセスを増やすことで、パフォーマンスを向上させることができます。Red Hat は、各ノードのコアごとに 1 つまたは 2 つのプロセスを実行することを推奨します。
Pod にプロセスを追加するには、以下の手順を実行します。
OpenShift クラスターにログインします。
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow 3scale プロジェクトに切り替えます。
oc project <project_name>
oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 適切な環境変数に、希望する Pod ごとのプロセス数を設定します。
-
APIcast Pod:
APICAST_WORKERS(Red Hat は、APIcast が APIcast Pod で利用できる CPU の数によってワーカーの数を判断できるよう、この環境変数を未設定のままにすることを推奨します) -
バックエンド Pod:
PUMA_WORKERS システム Pod:
UNICORN_WORKERSoc env dc/apicast --overwrite APICAST_WORKERS=<number_of_processes>
oc env dc/apicast --overwrite APICAST_WORKERS=<number_of_processes>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc env dc/backend --overwrite PUMA_WORKERS=<number_of_processes>
oc env dc/backend --overwrite PUMA_WORKERS=<number_of_processes>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc env dc/system-app --overwrite UNICORN_WORKERS=<number_of_processes>
oc env dc/system-app --overwrite UNICORN_WORKERS=<number_of_processes>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
APIcast Pod:
4.4.2.2. 垂直および水平のハードウェアスケーリング リンクのコピーリンクがクリップボードにコピーされました!
リソースを追加することで、OpenShift 上の AMP デプロイメントのパフォーマンスを高めることができます。コンピュートノードを Pod として OpenShift クラスターに追加すること (水平スケーリング) や、既存のコンピュートノードに割り当てるリソースを増やすこと (垂直スケーリング) ができます。
水平スケーリング
コンピュートノードを Pod として OpenShift に追加することができます。追加のコンピュートノードがクラスター内の既存ノードと一致する場合には、環境変数を再設定する必要はありません。
垂直スケーリング
既存のコンピュートノードに割り当てるリソースを増やすことができます。割り当てるリソースを増やす場合は、追加のプロセスを Pod に追加してパフォーマンスを高める必要があります。
Red Hat は、3scale デプロイメントにおいて、仕様や設定の異なるコンピュートノードを混在させることは推奨していません。
4.4.2.3. ルーターのスケールアップ リンクのコピーリンクがクリップボードにコピーされました!
トラフィックの増加に応じて、OCP ルーターがリクエストを適切に処理できるようにする必要があります。ルーターがリクエストのスループットを制限している場合には、ルーターノードをスケールアップする必要があります。
4.4.2.4. 詳細はこちら リンクのコピーリンクがクリップボードにコピーされました!
- タスクのスケーリング、ハードウェアコンピュートノードの OpenShift への追加
- コンピュートノードの追加
- ルーター
4.5. 操作のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
4.5.1. ログへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
各コンポーネントのデプロイメント設定には、アクセスと例外のログが含まれます。デプロイメントで問題が発生した場合には、これらのログで詳細を確認してください。
3scale のログにアクセスするには、以下の手順に従います。
ログを必要とする Pod の ID を確認します。
oc get pods
oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc logsと選択した Pod の ID を入力します。oc logs <pod>
oc logs <pod>Copy to Clipboard Copied! Toggle word wrap Toggle overflow システム Pod にはコンテナーが 2 つあり、それぞれに別個のログがあります。コンテナーのログにアクセスするには
、--containerパラメーターでsystem-provider およびを指定します。system-developeroc logs <pod> --container=system-provider oc logs <pod> --container=system-developer
oc logs <pod> --container=system-provider oc logs <pod> --container=system-developerCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5.2. ジョブキュー リンクのコピーリンクがクリップボードにコピーされました!
ジョブキューには、system-sidekiq Pod から送られる情報のログが含まれます。これらのログを使用して、クラスターがデータを処理しているかどうかを確認します。OpenShift CLI を使用してログを照会することができます。
oc get jobs
oc get jobs
oc logs <job>
oc logs <job>
第5章 3scale API Management High Availability and Evaluation リンクのコピーリンクがクリップボードにコピーされました!
5.1. はじめに リンクのコピーリンクがクリップボードにコピーされました!
ここでは、オンプレミス型 Red Hat 3scale API Management 2.4 インストール環境で使用される 高可用性 テンプレートおよび 評価用 テンプレートについて説明します。
5.2. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 高可用性テンプレートおよび評価用テンプレートの要素をデプロイできる OpenShift クラスターが必要です。
5.3. 高可用性テンプレート リンクのコピーリンクがクリップボードにコピーされました!
高可用性 (HA) テンプレートを使用すると、重要なデータベースの HA を設定できます。
5.3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- HA テンプレートをデプロイする前に、外部データベースをデプロイおよび設定し、負荷分散されたエンドポイントで HA を設定する必要があります。
5.3.2. HA テンプレートの使用 リンクのコピーリンクがクリップボードにコピーされました!
高可用性のために amp-ha-tech-preview.yml という名前のテンプレートを使用すると、OpenShift 外部に重要なデータベースをデプロイできます。ただし、以下は除外されます。
- Memcached
- Sphinx
- Zync
標準の amp.yml テンプレートと amp-ha-tech-preview.yml には、以下の違いがあります。
以下の要素が削除されています。
- backend-redis およびその関連コンポーネント
- system-redis およびその関連コンポーネント
- system-mysql およびその関連コンポーネント
- Redis および MySQL 関連の ConfigMaps
- MYSQL_IMAGE、REDIS_IMAGE、MYSQL_USER、MYSQL_ROOT_PASSWORD パラメーター
-
デフォルトで、データベースではない
DeploymentConfigオブジェクトタイプのレプリカの数が 1 から 2 に増加されます。 以下の必須パラメーターが追加されているため、外部データベースの場所を制御できます。
- BACKEND_REDIS_STORAGE_ENDPOINT
- BACKEND_REDIS_QUEUES_ENDPOINT
- SYSTEM_REDIS_URL
- APICAST_STAGING_REDIS_URL
- APICAST_PRODUCTION_REDIS_URL
- SYSTEM_DATABASE_URL
amp-ha-tech-preview.yml を使用する場合、新たに追加された必須パラメーターによりクラスター外のデータベース接続を設定する必要があります (ただし、永続的なデータが含まれない system-memcache、zync-database、および system-sphinx は除外)。エンドポイントには、クレデンシャルを含む、データベースの負荷分散用接続文字列が必要です。また、データベースではないデプロイメントについては、アプリケーションレベルでの冗長性を確保するためにデフォルトで Pod レプリカの数が 2 に増えています。
5.4. 評価用テンプレート リンクのコピーリンクがクリップボードにコピーされました!
評価の目的で、リソースのリクエストや制限のない 3scale 環境をデプロイする amp-eval-tech-preview.yml という名前のテンプレートが提供されています。
標準の amp.yml テンプレートとの唯一の機能的な違いは、リソースの制限とリクエストが削除されたことです。そのため、このバージョンでは CPU およびメモリーレベルでハードウェアの最低要件が Pod で削除されました。このテンプレートは、指定のハードウェアリソースを使用して、可能な限りコンポーネントをデプロイしようとするため、評価、テスト、および開発のみの使用を目的としています。
第6章 3scale の Redis 高可用性 (HA) サポート リンクのコピーリンクがクリップボードにコピーされました!
3scale における Redis 高可用性 (HA) のサポートには、既知の問題があります。詳細は、Red Hat 3scale API Management 2.4 リリースノート(セクション 1.5)を参照してください。リリースノートの既知の問題。
6.1. はじめに リンクのコピーリンクがクリップボードにコピーされました!
高可用性 (HA) は、OpenShift Container Platform (OCP) によりほとんどのコンポーネントで提供されます。詳細は、OpenShift Container Platform 3.11 第 30 章 を参照してください。「High Availability」 を参照してください。
3scale では HA のデータベースコンポーネントに以下が含まれます。
-
system-redis: 3scale API Management のバックグラウンドジョブの一時ストレージを提供し、system-appPod の Ruby プロセスのメッセージバスとしても使用されます。 -
backend-redis: 統計ストレージおよび一時ジョブストレージに使用されます。
system-redis および backend-redis は、どちらも Redis Cluster (open-source または Redis Labs)に置き換えることができます。
以下の env 変数は system-(app、sidekiq、sphinx)デプロイメント設定に設定できますが、Redis Enterprise の要件のみになります。
-
MESSAGE_BUS_REDIS_URL(redis URL) -
REDIS_NAMESPACE(namespace Sidekiq の Redis キーへの短い文字列) -
MESSAGE_BUS_REDIS_NAMESPACE(namespace System メッセージバスの Redis キーへの短い文字列)
Redis Pod が使えなくなったり、OCP によって強制的に終了されたりすると、新しい Pod が自動作成されます。データは永続ストレージから復元されるため、Pod は動作し続けます。このような場合、新しい Pod が起動するまで短いダウンタイムが発生します。これは、Redis がマルチマスター設定をサポートしないという制限によるものです。Redis をデプロイしたすべてのノードに Redis イメージを事前に読み込むと、ダウンタイムを削減することができ、Pod の再起動を迅速に行うことができます。
6.2. ゼロダウンタイムのための Redis 設定 リンクのコピーリンクがクリップボードにコピーされました!
ダウンタイムをゼロにすることが必須の要件であれば、Redis を OCP 外部に設定する必要があります。3scale Pod の設定オプションを使用してこの設定を行うには、いくつかの方法があります。
- 独自の自己管理型 Redis を設定する
- Redis Sentinel を使用する (『Redis Sentinel Documentation』を参照)
サービスとして提供される Redis:
例:
- Amazon ElastiCache
- Redis Labs
Red Hat は上記のサービスにサポートを提供しません。このようなサービスの言及は、Red Hat による製品やサービスの推奨を意味するものではありません。Red Hat は、Red Hat 外部のコンテンツを使用 (または依存) して発生した損失や費用の責任を負いません。
6.3. 3scale 用バックエンドコンポーネントの設定 リンクのコピーリンクがクリップボードにコピーされました!
3scale API Management 2.4 では、バックエンドコンポーネントの Redis HA(フェイルオーバー)を設定できます。以下のデプロイメント設定では、backend-cron、backend- listener、および の環境変数として設定することができます。
backend- worker
CONFIG_REDIS_SENTINEL_HOSTSおよびCONFIG_QUEUES_SENTINEL_HOSTS:メイン統計データベースに対する Sentinel ホストのコンマ区切りリストおよび Resque バックグランドジョブのデータベース
注記値は name:value
<host>:<port>の形式にする必要があります(例:host1:26379、host2:26379、またはhost3:26379)。CONFIG_REDIS_SENTINEL_ROLEおよびCONFIG_QUEUES_SENTINEL_ROLE:各 Sentinels グループのロールで、master または slave のいずれか。現時点でサポートされるのは master (デフォルト) だけです。
これにより、CONFIG_REDIS_PROXY と CONFIG_QUEUES_MASTER_NAME の値は、特定のサーバーではなく Sentinel グループ名の意味を取ります。
Sentinel ホストが設定されていない場合には、環境変数
CONFIG_REDIS_PROXY およびは URL を使用し、パスワードで保護されたデータベースをサポートします(例:CONFIG_QUEUES_MASTER_NAMECONFIG_REDIS_PROXY=redis://user:password@server:port/database)。- その後、パスワードで保護された Redis インスタンスとの間で接続が確立されます。
-
Sentinel ホストを設定する場合は、パスワードを Sentinel 設定で設定し、代わりに Sentinel グループ名(
CONFIG_REDIS_PROXY=master_group)を使用する必要があります。
第7章 「How to Deploy A Full-stack API Solution With Fuse, 3scale, and OpenShift」 リンクのコピーリンクがクリップボードにコピーされました!
本チュートリアルでは、OpenShift および 3scale API Management Platform 向けの Red Hat JBoss xPaaS を使用して、フルスタック API ソリューション(API 設計、開発、ホスト、アクセス制御、収益化など)を取得する方法について説明します。
このチュートリアルは、Red Hat と 3scale 間のコラボレーションに基づいて、フルスタック API ソリューション を提供します。このソリューションには、Red Hat JBoss xPaaS for OpenShift での API の設計、開発、ホストが含まれており、3scale API Management Platform と完全な制御、可視性、および収益化機能が提供されます。
API 自体を Red Hat JBoss xPaaS for OpenShift にデプロイすることができます。OpenShift は、クラウドおよびオンプレミス(Red Hat 部分)でホストされることができます。API 管理(3scale 部分)は、3scale APIcast または OpenShift を使用して Amazon Web Services(AWS)でホストすることができます。これにより、デプロイメントの柔軟性を最大限にするために、さまざまな設定オプションを利用できます。
以下の図は、この結合ソリューションの主な要素をまとめています。エンタープライズバックエンドシステム、ミドルウェア、API 管理、および API 顧客を含む統合チェーン全体が表示されます。
具体的なサポートに関する質問は、サポートにご連絡ください。
本チュートリアルでは、ステップごとに 3 つの異なるデプロイメントシナリオステップを以下に示します。
- シナリオ 1: API が含まれる Fuse on OpenShift アプリケーション。API は、3scale AMI を使用して Amazon Web Services(AWS)でホストされる API ゲートウェイで 3scale により管理されます。
- シナリオ 2: API が含まれる Fuse on OpenShift アプリケーション。API は APIcast でホストされている API ゲートウェイを使用して 3scale により管理されます(APIcast (3scale のクラウドホスト型 API ゲートウェイ)。
- シナリオ 3: API が含まれる Fuse on OpenShift アプリケーション。API は OpenShiftでホストされる API ゲートウェイを使用して 3scale により管理されます。
このチュートリアルでは、以下の 4 つの部分に分類されます。
- パート 1: API の設計および実装を行うFuse on OpenShift の設定
- パート 2: 3scale API Management の設定
- パート 3: API サービスの統合
- パート 4: API および API 管理のテスト
以下の図は、この設定内のさまざまな部分のロールを示しています。
7.1. パート 1: Fuse on OpenShift の設定 リンクのコピーリンクがクリップボードにコピーされました!
管理する API が含まれる Fuse on OpenShift アプリケーションを作成します。Fuse 6.1 に含まれる REST クイックスタートを使用します。小さいギアを使用すると、メモリーエラーやパフォーマンスに悪影響を与えるため、メディアや大容量のギアが必要になります。
7.1.1. ステップ 1 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift オンラインアカウントにログインします。OpenShift オンラインアカウントにサインアップしていない場合は、このアカウントにサインアップしてください。
7.1.2. ステップ 2 リンクのコピーリンクがクリップボードにコピーされました!
サインイン後に「add application」ボタンをクリックします。
7.1.3. ステップ 3 リンクのコピーリンクがクリップボードにコピーされました!
xPaaS で、アプリケーションの Fuse タイプを選択します。
7.1.4. ステップ 4 リンクのコピーリンクがクリップボードにコピーされました!
これでアプリケーションが設定されます。「restapitest」など、アプリケーションに表示するサブドメインを入力します。これにより、「appname-domain.rhcloud.com」の形式の完全な URL が提供されます(以下の例で「restapitest-ossmentor.rhcloud.com」)。Fuse カートリッジに必要なギアサイズを medium または large に変更します。これで「Create application」をクリックします。
7.1.5. ステップ 5 リンクのコピーリンクがクリップボードにコピーされました!
「Create application」をクリックします。
7.1.6. ステップ 6 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーション hawtio コンソールを参照し、サインインします。
7.1.7. ステップ 7 リンクのコピーリンクがクリップボードにコピーされました!
ログイン後に「runtime」タブおよびコンテナーをクリックし、REST API の例を追加します。
7.1.8. ステップ 8 リンクのコピーリンクがクリップボードにコピーされました!
「プロファイルの追加」ボタンをクリックします。
7.1.9. ステップ 9 リンクのコピーリンクがクリップボードにコピーされました!
examples/quickstarts まで下方向にスクロールし、「REST」チェックボックスを選択してから「add」をクリックします。REST プロファイルが、コンテナー関連のプロファイルページに表示されるはずです。
7.1.10. ステップ 10 リンクのコピーリンクがクリップボードにコピーされました!
runtime/APIs タブをクリックして REST API プロファイルを確認します。
7.1.11. ステップ 11 リンクのコピーリンクがクリップボードにコピーされました!
REST API が動作していることを確認します。カスタマー 123 を参照します。これは、XML 形式で ID と名前を返します。
7.2. パート 2: 3scale API Management の設定 リンクのコピーリンクがクリップボードにコピーされました!
3scale API Management を使用して Part 1 で作成した API を保護するには、まず以下を行う必要があります。これは、後で提示した 3 つのシナリオに従ってデプロイされます。
OpenShift に API を設定したら、これを 3scale に設定して、アクセス制御と使用状況の監視のための管理レイヤーを提供することができます。
7.2.1. ステップ 1 リンクのコピーリンクがクリップボードにコピーされました!
3scale アカウントにログインします。まだ 3scale アカウントをお持ちでない場合は 、www.3scale.net でサインアップすることができます。アカウントへの初回ログイン時に、ウィザードに従って API と 3scale の統合に関する基本事項を確認します。
7.2.2. ステップ 2 リンクのコピーリンクがクリップボードにコピーされました!
[your_API_name] > Integration > Configuration の順に移動し、先ほど作成した OpenShift で Fuse アプリケーションのパブリック URL を入力します(例: "restapitest-ossmentor.rhcloud.com"、Test をクリックします。これにより、ステージング環境で 3scale API ゲートウェイに対して設定をテストします。ステージング環境用 API ゲートウェイを使用すると、プロキシー設定を AWS にデプロイする前に、3scale の設定をテストすることができます。
7.2.3. ステップ 3 リンクのコピーリンクがクリップボードにコピーされました!
次の手順では、監視および流量制御を設定する API メソッドを設定します。これには 、[your_API_name] > Integration > Methods & Metrics の順に移動し、「New method」をクリックします。
メソッドの作成に関する詳細は、API 定義チュートリアル を参照してください。
7.2.4. ステップ 4 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションプランで監視および制御するすべてのメソッドを取得したら、これらを API のエンドポイントの実際の HTTP メソッドにマッピングする必要があります。インテグレーションページに戻り、「マッピングルール」セクションを展開します。
アプリケーションプランで作成した各メソッドにマッピングルールを作成します。
これが完了すると、マッピングルールは以下のようになります。
マッピングルールの詳細については、「マッピングルール」 のチュートリアルを参照してください。
7.2.5. ステップ 5 リンクのコピーリンクがクリップボードにコピーされました!
「更新およびテスト」をクリックして設定を保存およびテストしたら、AWS で API ゲートウェイを設定できるように、設定ファイルのセットをダウンロードする準備が整います。API ゲートウェイでは、nginx という高パフォーマンスのオープンソースプロキシーを使用する必要があります。nginx に必要な設定ファイルは、同じ統合ページにあり、「実稼働」セクションまでスクロールします。
次のセクションでは、さまざまなホストシナリオを説明します。
7.3. パート 3: API サービスの統合 リンクのコピーリンクがクリップボードにコピーされました!
3scale で API サービスを統合する方法は複数あります。ニーズに最も適した デプロイメントオプションを選択します。
7.4. パート 4: API および API Management のテスト リンクのコピーリンクがクリップボードにコピーされました!
API と API の正しい機能をテストすることは、選択したシナリオから独立しています。お気に入りの REST クライアントを使用し、以下のコマンドを実行します。
7.4.1. ステップ 1 リンクのコピーリンクがクリップボードにコピーされました!
id 123 の顧客インスタンスを取得します。
http://54.149.46.234/cxf/crm/customerservice/customers/123?user_key=b9871b41027002e68ca061faeb2f972b
http://54.149.46.234/cxf/crm/customerservice/customers/123?user_key=b9871b41027002e68ca061faeb2f972b
7.4.2. ステップ 2 リンクのコピーリンクがクリップボードにコピーされました!
カスタマーを作成します。
http://54.149.46.234/cxf/crm/customerservice/customers?user_key=b9871b41027002e68ca061faeb2f972b
http://54.149.46.234/cxf/crm/customerservice/customers?user_key=b9871b41027002e68ca061faeb2f972b
7.4.3. ステップ 3 リンクのコピーリンクがクリップボードにコピーされました!
ID 123 で顧客インスタンスを更新します。
http://54.149.46.234/cxf/crm/customerservice/customers?user_key=b9871b41027002e68ca061faeb2f972b
http://54.149.46.234/cxf/crm/customerservice/customers?user_key=b9871b41027002e68ca061faeb2f972b
7.4.4. ステップ 4 リンクのコピーリンクがクリップボードにコピーされました!
id 123 の顧客インスタンスを削除します。
http://54.149.46.234/cxf/crm/customerservice/customers/123?user_key=b9871b41027002e68ca061faeb2f972b
http://54.149.46.234/cxf/crm/customerservice/customers/123?user_key=b9871b41027002e68ca061faeb2f972b
7.4.5. ステップ 5 リンクのコピーリンクがクリップボードにコピーされました!
API の API Management 分析を確認します。
これで 3scale アカウントにログインし、Monitoring > Usage に移動すると、グラフとして表示される API エンドポイントのさまざまなヒットを確認できます。
これは API Management の 1 つの要素で、API の完全な可視性と制御が可能になります。その他の機能は次のとおりです。
- アクセス制御
- 使用ポリシーおよび流量制御
- レポート
- API ドキュメントおよびデベロッパーポータル
- 収益および請求
特定の API Management 機能とその利点についての詳細は 、3scale API Management Platform の製品の説明を参照してください。
特定の Red Hat Fuse 製品機能とその利点に関する詳細は、JBOSS FUSE Overview を参照してください。
Red Hat Fuse on OpenShift の実行に関する詳細は、JBoss Fuse on OpenShift のスタートガイド を参照してください。