This is a shameless plug as I work on this product. This is a quick startup guide for getting 3scale up and running quickly with the 3scale-operator. This is not a production configuration and doesn't cover all configuration options.
Install with the 3scale-operator
First we create a project
oc new-project 3scale-test
In the Openshift Administrator view we can then use the Operatorhub to install the 3scale operator into the project
Once installed we can create an APIManager CR to create an instance of 3scale. To do this we need a wildCardDomain that is resolvable in Openshift. You can setup a custom domain or you can use the Openshift default application router which I will used. This can be got from your Openshift console route e.g.
console-openshift-console.apps.aucunnin.4mog.s1.devshift.org
You also need an s3 bucket setup. This bucket is used for storing CMS data for the customer web portal which I won't be covering in this blog. So once you have the bucket setup you will need its buck id , region and AWS key and secret. We create a secret in the project namespace
kind: Secret
apiVersion: v1
metadata:
name: s3-credentials
namespace: 3scale-test
data:
AWS_ACCESS_KEY_ID: UkVQTEFDRV9NRQ==
AWS_BUCKET: UkVQTEFDRV9NRQ==
AWS_REGION: UkVQTEFDRV9NRQ==
AWS_SECRET_ACCESS_KEY: UkVQTEFDRV9NRQ==
type: Opaque
the values are base64 encoded e.g.
echo UkVQTEFDRV9NRQ== | base64 -d
REPLACE_ME
Once the secret is created you can create the APIManager CR
apiVersion: apps.3scale.net/v1alpha1
kind: APIManager
metadata:
name: apimanager-sample
namespace: 3scale-test
spec:
system:
fileStorage:
simpleStorageService:
configurationSecretRef:
name: s3-credentials
wildcardDomain: apps.aucunnin.4mog.s1.devshift.org
Once the CR is created it should install 3scale. You can confirm the install is finished by checking the APIManager CR status , should look like the following.
# using https://mikefarah.gitbook.io/yq/
oc get apimanager apimanager-sample -oyaml | yq '.status'
conditions:
- lastTransitionTime: "2023-02-17T14:29:27Z"
status: "True"
type: Available
deployments:
ready:
- apicast-production
- apicast-staging
- backend-cron
- backend-listener
- backend-redis
- backend-worker
- system-app
- system-memcache
- system-mysql
- system-redis
- system-sidekiq
- system-sphinx
- zync
- zync-database
- zync-que
Login to 3scale
Once we reach this point we can play around with 3scale. We can use the 3scale-admin
route or the master
route to log in the credentials for these are in the system-seed
secret. I will use the admin route .
Click on the route and login as admin
with the copied password and go through the welcome wizard.
Add your own API
I am going to use a free API to demo this
curl -k https://catfact.ninja/fact
{"fact":"Both humans and cats have identical regions in the brain responsible for emotion.","length":81}%
Create a Backend
From the dashboard click on Create Backend
and fill out the form adding a valid api.
Create a Product
From the dashboard click on Create Product
and fill out the form
Add Application Plan
From the Product screen select Application and Application Plan
and fill out the form, you can add thing like price plans, trial periods etc.
Add an Application
From the Product screen select Application and Listing
and then the Create Application
button and fill out the form again
Link your Backend to your Product
From the dashboard click on the product you created earlier, Click on Integration\Configuration
and add the backend to your product.
Promote to staging and production
From the products screen click on Integration\Configuration
again and click on the button to promote to staging and production
You can check the staging url out with the curl command e.g.
curl "https://catfact-3scale-apicast-staging.apps.aucunnin.4mog.s1.devshift.org:443/?user_key=073a4f36364b635c156811dcc1728d32"
{"fact":"Phoenician cargo ships are thought to have brought the first domesticated cats to Europe in about 900 BC.","length":105}%
That it for kicking the tyres , there is a lot more you can add to your product such as analytics, metrics, policies, API docs\ActiveDocs. There are plenty of other features but I won't go into them as I would just be covering what is already in the docs
Top comments (0)