This is a catch-all repository for the SQAaaS platform, which is developed under the scope of EOSC-Synergy project.
jenkins-pipeline-library
sqaaas-api-spec
sqaaas-api-server
sqaaas-tooling
sqaaas-reporting
sqaaas-web
The Kubernetes cluster is deployed (using IM dashboard) on top of EGI Cloud Compute federation.
The APIs are exposed through HTTPS via the Kubernetes' Nginx Ingress Controller that is automatically installed by the IM.
As simple as using the kustomization.yaml
file to orchestrate the SQAaaS API
server in a Kubernetes cluster. Hence, from the root path of the repository, run:
kubectl apply -k k8s
The former kustomization.yaml
file is expecting a set of data, i.e. secret
tokens and the main configuration file, in order to perform the deployment with
success.
Note: the paths are relative to the root path of the repository
SQAaaS API leverages GitHub and Jenkins APIs, and accordingly, we will need tokens for those components. In particular:
./k8s/.gh_token
./k8s/.jk_token
The SQAaaS API can be customized through a INI configuration file. An sample INI file is distributed with the application.
./k8s/sqaaas.ini
The deployed API server can be accessed through the following URI: http://<master_node_ip>/sqaaas/v1/
As an example, the following example lists the currently existing pipelines:
$ curl http://<master_node_ip>/sqaaas/v1/pipeline
Additionally, within the development process, it could be useful to deploy the staging (stub) and
development (mock) API servers. The ./k8s/
folder contains the YAMLs for deploying these APIs, so
it is just a matter of adding them to the ./k8s/kustomization.yaml
file in the same way it was done
with the production API:
resources:
(..)
- sqaaas-api-dev.yaml
- sqaaas-api-staging.yaml
(..)
Similarly, once re-deployed, the following command requests the list of pipelines for the staging and development APIs:
$ curl http://<master_node_ip>/sqaaas-stage/v1/pipeline/
$ curl http://<master_node_ip>/sqaaas-dev/pipeline/
NOTE