--- title: 'Documentation of Bank Al Jajeraa' --- Documentation of BAJ === [TOC] ## Overall infra: The DevOps part of BAJ relies on the following technological stacks : Docker, Git(Gitea), Tekton, ArgoCD, OpenShift, SonarQube, Helm Environment: --- ```htmlmixed #There are 4 main environments in this company: - Dev - DevInt - Int - UAT ##Services: ``` ## How it works: :::warning **Warning** This whole documentation is based on the information is provided solely on Git Repos of the Organization that I read. This in no way, should reflect the actual architecutre of the company. ::: The whole support and the flow of DevOps is working as follows: Once a commit to the git repos of one of the services: The Devlopment flow begins with a tekton pipeline getting triggred, which inturn runs the remote repo (cloud-infra). Runs all the tasks that are defined in the `tasks/` and `pieplines/` using the variables from `run/` and `charts/` The overview regarding the same is: --- The applications and the microservices are written in Java thjey are continionly integrated in the maven image (oci). Using the definations which are given in `src/main/docker/Dockerfile` build that is generated by a maven goal, and it's copied over the container registry of the OpenShift Cluster. --- In the actual pipeline what happens is that, the git is checkedout at a source main branch, the maven wrapper is going to build the OCI as per definations given in the `apps` There are couple of unit tests and stuff, which runs as part of this, after which the image is baked when it is reached at `mvn deploy` and after which, the actual deployment of the applicaiton begins ---- In the development phase, the java application is built as a artifact and sent over to Nexus Repository from which the job is tested and given a smoke test. Once the published artifacts are ready, it goes ahead and ships out an image which is built using a custom base image that's internal to the company. Skopeo is used to capture the image and replicate it to Openshift Quay Repo which is later deployed as an actual applicaiton --- The CD pipeline runs thru an argo based setup where; the argo application is created usign manifests and applied and argoCd takes care of the actual deployment. (We don't know the actual deployment stages under Argo, becuase we don't have access to argo.) The Argo runs a helm chart for the Quarkus application which is devopled and pulls the secrets from main `secrets/` and the values are defined at Individual project level as per the environment `dev, int, dev-int, uat` the image is given an appropirate tag, which the argo goes ahead and deploys. <!-- ###### tags: `Templates` `Documentation` -->