This repository is designed to be a cloud native web application (backend services) for the course: CSYE6255 Network Structures and Cloud Computing. This application is primarily built using SpringBoot framework in Java.
- SpringBoot - For the server applications
- MySql - For database management
- Postman - Test API endpoints
- Rest Assured - Integration testing
- Github Actions - Used workflows to ensure CI/CD
- PUT - v1/user/self : Update user information
- GET - v1/user/self: Get user information
- POST - /v1/user : Add user
- GET - /healthz : Check the health of the app ( If database connections works etc)
-
Stop mysql: brew services start mysql
-
Start mysql: brew services stop mysql
-
To run the application: mvn spring-boot:run
-
To run test files: mvn test
-
To build the project: mvn clean package
-
packer init: Initialise packer
-
packer validate: checks the validity of packer file/template
-
gcloud iam service-accounts create packer
--project csye6225-dev-414923
--description="Packer Service Account"
--display-name="Packer Service Account" : Create a new service account called packer -
gcloud projects add-iam-policy-binding csye6225-dev-414923
--member=serviceAccount:packer@csye6225-dev-414923.iam.gserviceaccount.com
--role=roles/compute.instanceAdmin.v1 : grant the packer account Instance Admin Role -
gcloud projects add-iam-policy-binding csye6225-dev-414923
--member=serviceAccount:packer@csye6225-dev-414923.iam.gserviceaccount.com
--role=roles/iam.serviceAccountUser : Grant the packer account User role so it can use the SA -
gcloud projects add-iam-policy-binding csye6225-dev-414923
--member=serviceAccount:packer@csye6225-dev-414923.iam.gserviceaccount.com
--role=roles/iap.tunnelResourceAccessor : Grant IAP Tunneling access for Packer VM to make requests to App Engine