dev_forum-user

module
v0.0.0-...-a9069fd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 12, 2024 License: MIT

README

Status

🚧 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.

dev_forum-user

GoDoc Go Report Card GitHub License

User-service registers user identities in the dev_forum system.

It's dependent on:

  • CockroachDB for persistent user storage.
  • RabbitMQ for asynchronous communication with the other components in the domain.
  • OtelCollector for receiving and forwarding telemetry data.

Set up

Rename .env.example to .env and fill in missing values.

Using Go command

You need a working Go environment.

go mod tidy
go mod vendor
go build cmd/main.go
On Docker

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-user:0.1.0

You need a working Kubernetes environment with kustomize.

Kubernetes resources are defined in deployment/k8s and deployed using Kustomize. Currently there are stage, dev and test overlays available and include any needed resources and configs.

Use make to apply manifests for dev_forum-user and needed DBs for either dev or stage environment. Every make rule that depends on k8s accepts an overlay param which indicates the namespace for the rule.

make k8s-run overlay=<dev/stage/...>
# To delete
make k8s-stop overlay=<dev/stage/...>

Testing

Run unit and integration tests using Go command.

#  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/...>

Documentation

For in-detail documentation refer to the Wiki.

API

Service is exposing a gRPC API.

Regenerate pb packages after making changes to any of the .proto files located in api/. You can use go-grpc-gen, a containerized tool for generating gRPC bindings, with make grpc-gen.

Directories

Path Synopsis
cmd
internal
This package is here only to allow other packages to use its embedded FS without worrying about directing to parent directories and trying to find workarounds since relative paths are not allowed.
This package is here only to allow other packages to use its embedded FS without worrying about directing to parent directories and trying to find workarounds since relative paths are not allowed.
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL