WorkbenchTools
WorkbenchTools is the component that manages Global Information Tracker (Git) user repositories and connects to a remote Git server.
The following are performed by WorkbenchTools:
-
Exposes RESTful Web Services to handle Git and file system operation for user repositories.
-
Requires an Identity and access management (IAM) or keycloak for authentication and authorization.
The WorkbenchTools comprises the following:
- Workbench-git-fs-api Microservice
- Maven Archetypes (to create config packages, build parent, Release Validation Test (RVT) integration, and test projects)
- RVT Framework Libraries
The dsf-workbenchtools project uses the Quarkus framework. The service exposes RESTful web services to handle Git and file system actions. The WorkbenchTools is integrated with keycloak for authentication and authorization. The GitLab is the only supported provider.
Deploying WorkbenchTools in Docker Container
The WorkbenchTools can be installed and run in the docker container. The following are the pre-requites:
- JDK 11+ installed with JAVA_HOME configured
- Apache Maven 3.8.1+
- Docker Desktop 4.2 + installed
To install and run WorkbenchTools,
- Extract the dsf-workbenchtools-DEV.0.0-SNAPSHPOT.zip file in the C drive.
- Load the images to the docker container.
Configure the dsf-workbenchtools\dsf-workbenchtools-docker-compose.yml file according to your local environment.
Deploy dsf-workbenchTools in the docker,
- Run the dsf-workbenchtools\dsf-workbenchtools-deploy.bat from a command window.
- Choose any one of the following values:
- L - Load dsf-workbenchtools docker image and start
- U - Up the container, which can be accessed at http://localhost
- D - Make the container down
Choose L if you deploy the file for the first time.
Deploying WorkbenchTools on Minikube (Kubernetes Cluster)
To deploy Minikube:
- Extract the dsf-workbenchtools-DEV.0.0-SNAPSHPOT.zip file.
- Load the images to the docker container. Load the docker image into the Kubernetes container using the commands provided below (commands for the Azure environment).
az acr login -n <crname> docker tag dsf-workbench/git-fs-api <crname>.azurecr.io/dsf-workbench-gitfs:<tag> docker push <crname>.azurecr.io/dsf-workbench-gitfs:<tag>
The images are loaded and WorkbenchTools are deployed successfully in Minikube.
Deploying WorkenchTools on Kubernetes Cluster using Helm
To deploy WorkbenchTools on Kubernetes Cluster using Helm:
-
Extract the dsf-workbenchtools-helm-DEV.0.0-SNAPSHPOT.zip file in the C drive.
-
Run the Helm command provided below from the extracted folder by setting the appropriate values.
```sh helm install workbenchtools ./ -n workbenchtools --kube-context $INSTANCE_CLUSTER_NAME \ --set image.repository="$(crName).azurecr.io"/dsf-workbench-gitfs \ --set image.tag=$(workbenchtools.release) \ --set env.saasWorkbenchInstance=$(workbenchtools.saasWorkbenchInstance) \ --set env.saasWorkbenchBlueprint=$(workbenchtools.saasWorkbenchBlueprint) \ --set env.oidcAuthServerUrl=$(workbenchtools.oidcAuthServerUrl) \ --set env.oidcClientId=$(workbenchtools.oidcClientId) \ --set env.gitProvider=$(workbenchtools.gitProvider) \ --set env.gitServerUrl=$(workbenchtools.gitServerUrl) \ --set env.gitProject=$(workbenchtools.gitProject) \ --set env.gitAdminAccessToken=$(workbenchtools.gitAdminAccessToken) \ --set env.transactHost=$(workbenchtools.transactHost) \ --set env.artifactoryBaseUrl=$(workbenchtools.artifactoryBaseUrl) \ --set env.artifactoryKey=$(workbenchtools.artifactoryKey) \ --set env.tenantArtifactoryRepo=$(workbenchtools.tenantArtifactoryRepo) \ --set env.kafkaBootstrapServers=$(workbenchtools.kafkaBootstrapServers) \ --set env.kafkaProducerTopic=$(workbenchtools.kafkaProducerTopic) \ --set env.kafkaProducerPassword=$(workbenchtools.kafkaProducerPassword) \ --create-namespace --wait --timeout 10m0s ```
|
End point |
Example |
Description |
|---|---|---|
| http(s)://[ipaddress]/swagger | http://10.11.12.13/swagger | Allows you to download the swagger.json that can be imported to Rest Clients like Postman or Insomnia. |
| http(s)://[ipaddress]/swagger-ui | http://10.11.12.13/swagger-ui | Allows you to access the Open API swagger UI |
| http(s)://[ipaddress]/health | http://10.11.12.13/health | Allows you to know the health of the service |
| http(s)://[ipaddress]/api/v1.0.0 | http(s)://10.11.12.13/api/v1.0.0 | Allows the REST endpoints |
In this topic