🚧 Under Development 🚧
This repository is a part of an ongoing project and is currently under active development. I'm continuously working on adding features, fixing bugs, and improving documentation. Although this is a one-man project, contributions are welcome. Please feel free to open issues or submit pull requests.
Gateway is the entrypoint for all users of the dev_forum system. It is responsible for fetching the data from backend services required to construct responses.
Rename .env.example
to .env
and fill in missing values.
You need working Go environment.
go mod tidy
go mod vendor
go build cmd/main.go
You need a working Docker environment.
You can use the Dockerfile located in deployment/
to build and run the service on a docker container.
make build-image version=latest
docker run -p 50051:50051 -p 2223:2223 krixlion/dev_forum-gateway:latest
You need a working Kubernetes environment.
Kubernetes resources are defined in deployment/k8s
and deployed using Kustomize.
Currently there are stage
and dev
overlays available and include any needed resources and configs.
Use make
to apply manifests for either dev or stage environment.
make k8s-run overlay=<dev/stage/...>
# To delete
make k8s-stop overlay=<dev/stage/...>
Run unit and integration tests using Go command. Make sure to set current working directory to project root.
# Add `-short` flag to skip integration tests.
go test ./... -race
Generate coverage report using go tool cover
.
go test -coverprofile cover.out ./...
go tool cover -html cover.out -o cover.html
If the service is deployed on kubernetes you can use make
.
make k8s-integration-test overlay=<dev/stage/...>
or
make k8s-unit-test overlay=<dev/stage/...>
For detailed documentation refer to the Wiki.