Skip to content

sample project, uses voting as an example and has web interface calling Go backend api

Notifications You must be signed in to change notification settings

roost-io/voting_app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Voting app

About project

Voting application contains various frontend and backend microservices. These microservices are deployed and are available over ingress in Roost Cluster.

Voter

An frontend application written in node to allow participants to vote.

Depends on: ballot and ecserver services

Ballot

An backend app for voter written in Golang, to store the votes.

Election Commission

An frontend to manage the election candidates and uses ecserver as backend to store candidates lists.

Depends on: ecserver

ECserver

An backend app written in Golang for election-commission to store list of candidates.

How to deploy

Right-click on Makefile and choose Run.

How to access application

Pattern: http://$namespace.$serviceName.$clusterPublicIP.nip.io

Voter: default.voter.10.10.0.10.nip.io

ElectionCommission: default.ec.10.10.0.10.nip.io

How to test deployed app

Build and deploy service-test-suite in roost cluster. Roost intelligently identifies service dependencies. So whenever dependent service is modified, specified test suite is triggered. In event of building ballot image or restart of the ballot app, service test suite would be triggered and fitness events can be seen from event viewer ( Observability -> Service Fitness -> Fitness Event).

How to deploy using cloudbuild.yaml

Deploy the services manually and get the endpoints of the services(service url).

In the terminal run the command:

gcloud builds submit . --config=<path/to/cloudbuild.yaml> \ --substitution=_TAG=<provide the tag name>, _BALLOT_ENDPOINT=<ballot service url>, _ECSERVER_ENDPOINT=<ecserver service endpoint>

How to generate deployment YAMLs

Run the make generate command to generate the deployment YAMLs for all the services individually, if the users want to deploy a single microservice, these generated YAMLs will be located under generated-files/vote/templates/kubernetes-maifests.