Yet Another Test Cluster Project - an umbrella for a number of clustered subprojects
- K8S deployment files (
k8s
main directory for cluster creation, configuration and tunneling, and in each project subdirs for image building and deployment) to be used on a minikube local instance - KeyCloak Oauth2 Identity Provider yatc-keycloak with predefined
yatc-realm
realm - Postgresql yatc-postgres and MongoDB yatc-mongo databases
- Redis cache yayc-redis
- Kafka message broker (without ZooKeeper) yatc-kafka
- Prometheus monitoring with service discovery yatc-prometheus and Grafana yatc-grafana; integration with metrics data endpoints and exporters
- Log monitoring with Alloy yatc-alloy and Loky yatc-loki, integrated with Grafana, inspired by:
- Spring API Gateway gw-spring-cloud, based on reactive stack, integrated with KeyCLoak for authentication and Redis for session caching
- Spring servlet ms-spring-servlet and reactive ms-spring-reactive based microservices
- RUST Axum microservice ms-rust-axum
- NodeJS Express microservice ms-node-express - Work in Progress
- Propagation of traces (
trace_id
) using W3C standards (i.e.traceparent
header) in http and kafka communications
See:
- Setup Rust ms to read environment variables, and integration (rest api, database, security, kafka, etc)
- Add some Go ms (full integration as Rust) -> ms-go-fiber and ms-go-gin
- Add some Java (Quarkus) ms (full integration as Rust) -> ms-quarkus-jee and ms-quarkus-munity
- Add some Python ms
- Add some Scala ms
- Add some Nginx server with a basic frontends (Angular & Material / React & MUI / Vue & ?) -> fe-angular-material and fe-react-mui
- Activate OpenAPI / Swagger / Scalar API browsing through a backend gateway / ingress
- Create and persist Grafana dashboards
- Manage
USER
directive inDockerfile
s to avoid run asroot
- Change
docker-compose.yaml
for rely on module'sDockerfile
s and run builds accordingly - Add a SonarQube (https://hub.docker.com/_/sonarqube) and / or a bundled OWASP Dependency Tracker (https://hub.docker.com/r/dependencytrack/bundled) for project scanning
- Add OpenAPI online documentation (i.e. using Swagger or Scalar - see here) and propagate it through gateway on dedicated host.
- Include a Dockerfile.k8s.graalvm for java based microservices: tested, but not good to be tested on this infrastructure, because huge image building times and bad dependency compatibility in Spring Session.
- Add Camunda Zeebe (v8) workflow engine for orchestration (see https://docs.camunda.io/docs/self-managed/setup/deploy/local/docker-compose/): too many components to be put in the cluster, can't do this on a simple pc. At most, I would try to use Camunda Workflow Engine 7...