# Red Hat 3scale API Management Installation Guide

## Requirements

* Red Hat OpenShift Container Platform 4.10 cluster
* AWS Web Services account ([Create AWS Free Tier account](https://aws.amazon.com/free))
* OpenShift CLI (oc)
* [OpenSSL](https://www.openssl.org/source/) binary (should already exists on Mac and Linux)

## Installation Steps

1. [Setup AWS S3 bucket and create access key](https://audomsak.gitbook.io/3scale/documents/aws-s3-setup)
2. Open a terminal and login to OpenShift cluster with cluster admin privilege user i.e. `opentlc-mgr` (if you provisioned the cluster from RHPDS).
3. First, clone this repository to your computer, then change directory to the [script](https://github.com/audomsak/redhat-3scale-api-management/blob/main/script/README.md) directory, and then run the [setup.sh](https://github.com/audomsak/redhat-3scale-api-management/blob/main/script/setup.sh) script to install and setup 3scale and SSO operators, 3scale API Manager instance, and SSO (Keycloak) instance.

   The script will ask for OpenShift cluster domain, AWS credential, and AWS S3 bucket information. Enter your cluster domain and AWS input like a screenshot below.

   ![setup operator](https://3707709575-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlMgVlX77EAThg6NrNt4u%2Fuploads%2Fgit-blob-8a132d88470516fcb6a9b9fc8af371fab316d57a%2Foperator-setup-1.png?alt=media)
4. **The installation process will take a while to get completed (\~20 minutes)**. At the end, the script will show you 3scale and SSO web console URLs as well as credentials for login.

   ![setup operator](https://3707709575-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlMgVlX77EAThg6NrNt4u%2Fuploads%2Fgit-blob-7754433c794df75fe72ce635d2a5f6b486c59489%2Foperator-setup-2.png?alt=media)

In summary, these are what the setup script has done:

* Install 3scale Operator ([yaml](https://github.com/audomsak/redhat-3scale-api-management/blob/main/manifest/3scale/3scale-subscription.yml))
* Create 3scale API Manager instance ([yaml](https://github.com/audomsak/redhat-3scale-api-management/blob/main/manifest/3scale/api-manager.yml))
* Install Single Sign-On (SSO) Operator ([yaml](https://github.com/audomsak/redhat-3scale-api-management/blob/main/manifest/sso/sso-subscription.yml))
* Create Keycloak instance ([yaml](https://github.com/audomsak/redhat-3scale-api-management/blob/main/manifest/sso/keycloak.yml))
* Create Keycloak realm ([yaml](https://github.com/audomsak/redhat-3scale-api-management/blob/main/manifest/sso/realm.yml))
* Create a user in the realm ([yaml](https://github.com/audomsak/redhat-3scale-api-management/blob/main/manifest/sso/user.yml))
* Install demo applications ([yaml](https://github.com/audomsak/redhat-3scale-api-management/blob/main/manifest/demo-application/demo-applications.yml))
* Add SSO certificate to Zync certificate chain so it can integrate with SSO when using SSO to secure API(s) with OAuth2.

Note. Zync is one of components in 3scale ecosystem.

***

[Go back to main page](https://audomsak.gitbook.io/3scale/readme)
