This simple demo builds, packages and deploys a quick Camel Route example using Tekton Pipelines. Deployed API is exposed via the 3Scale API Management gateway with OpenID integration (RedHat SSO)
- Openshift 4.13.X
- Git access to the source repo
- Openshift Pipelines installed
- Openshift GitOps
- Openshift Pipelines
- RedHat 3Scale
- RedHat Single Sign On Operator
There are a few prerequisites that need to be deployed beforehand:
- Install and deploy ArgoCD as shown here
- Deploy ocp-pipeline with manifests found in the previously mentioned repo:
$ oc apply -k config/ocp-pipelines/argocd
- Create a new project:
$ oc new-project fuse-jdbc-demo
- Install tekton pipeline components:
oc apply -k tekton/
- Run the pipeline via the Web UI (or create a pipelinerun manifest)
- Deploy ArgoCD applications:
oc apply -k argocd/postgres
oc apply -k argocd/fuse-spring
And wait for the deployment to show
$ oc get deployment -n fuse-jdbc-demo
[...]
NAME READY UP-TO-DATE AVAILABLE AGE
spring-fuse-demo-github 0/1 1 0 19m
[...]
You can then discover the url by typing
$ oc get ingress -n fuse-demo
[...]
NAME CLASS HOSTS ADDRESS PORTS AGE
spring-fuse-demo-github <none> fuse.apps.kubernetes.local 80 2m29s
[...]
1- Deploy 3Scale Operator with manifests found here
$ oc apply -k config/ocp-threescale/argocd
2- Deploy the API gateway and configure the managed API (tenant, product and service backend)
$ oc apply -f deployments/3scale/3scale-apimanager.yaml
$ oc apply -f deployments/3scale/3scale-tenant.yaml
$ oc apply -f deployments/3scale/3scale-backend.yaml
$ oc apply -f deployments/3scale/3scale-product.yaml
$ oc apply -f deployments/3scale/3scale-developer.yaml
1- Deploy both the SSO operator and the Keycloak instance with provided manifests
$ oc apply -k deployments/ocp-sso/operator
$ oc apply -f deployments/ocp-sso/keycloak.yaml
2- Retrieve the Admin password from the generated secret
$ oc get secret credential-demo-keycloak -o jsonpath='{.data.ADMIN_PASSWORD}'| base64 -d
1- Create a new Realm in RedHat SSO and configure a new client for 3Scale
2- Configure the new Client with the required permissions
3- Get the 3Scale OpenID client secret
4- In the 3Scale API Admin Portal, configure OpenID flow for the FUSE API product
linux# curl -d '{"userId":7, "title":"This is a title", "body":"Blah"}' -H "Content-Type: application/json" http://fuse.apps.kubernetes.local/camel/api/post
PS> wget -Method Post -Body '{"userId":7, "title":"This is a title", "body":"Blah"}' -ContentType 'application/json' http://fuse.apps.kubernetes.local/camel/api/post
If you no longer need the example, you can just run
$ oc delete -k argocd/fuse-spring
$ oc delete -k argocd/postgres
- Fix bugs here and there
- Kubernetes/OCP Demo Application: example quarkus application for K8s
- OCP4 Component Deployment via ArgoCD: for deployment manifests of Openshift components with Openshift GitOps