Skip to content

Commit

Permalink
readme update
Browse files Browse the repository at this point in the history
  • Loading branch information
nxy7 committed Jun 18, 2023
1 parent 17310f4 commit 81b889a
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 19 deletions.
25 changes: 19 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,20 @@
Multilingual monorepo framework. The goal of this project is providing framework that's language agnostic, supports caching test results, allows describing services test, build and deploy processes regardless of project structure (standalone app/docker compose/kubernetes).
[Optimus Prime](https://www.dexerto.com/cdn-cgi/image/width=3840,quality=75,format=auto/https://editors.dexerto.com/wp-content/uploads/2023/04/21/Transformers-1.jpg)

# Goals
- easily understandable and extendable configuration
- caching test results if part of the project did not change
- rigid and opinionated project structure
- allow easy reusing of other existing apps/languages knowledge
Optimus is a powerful Golang package designed to simplify the management of monorepos containing multiple microservices. Inspired by the Optimus Prime, it provides a guiding framework to empower individual microservices, enabling them to work together seamlessly.

With Optimus, you can effortlessly navigate the complexities of monorepo development. It offers a comprehensive suite of tools and utilities to handle dependencies, streamline code sharing, and facilitate efficient development, testing, and deployment processes.

By automating mundane tasks and orchestrating interactions between microservices, Optimus brings order and efficiency to your monorepo. Just as Optimus Prime led the Autobots to synchronize their efforts for the greater good, Optimus empowers development teams to collaborate effortlessly and deliver exceptional software products.

# Key Features:

- Simplified monorepo management.
- Doesn't use obscure languages for configuration.
- Extensible using any shell that's available on the system.
- Smart testing makes CI pipelines faster.
- Rigid and opinionated project structure that makes navigating multiple projects easier.
- Empowers teams to collaborate effortlessly across different microservices.
- Works with Docker Compose, Kubernetes and standalone apps.

# Example configurations

Expand All @@ -15,4 +25,7 @@ Multilingual monorepo framework. The goal of this project is providing framework
## Kubernetes

# How to install

The easiest way to install this software would be using output of the flake from this repo and that's primarily how I'm using it in my other projects.

# Why 'Optimus'
3 changes: 2 additions & 1 deletion main.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@ package main

import (
"optimus/cmd"
"optimus/start"
"optimus/utils"
)

func main() {
start(utils.ProjectRoot())
start.Start(utils.ProjectRoot())

cmd.Execute()
}
14 changes: 6 additions & 8 deletions optimus.yaml
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
start: |
kubectl apply -f k3s/01_namespace.yaml;
kubectl apply -k .;
kubectl apply -f k3s/;
kubectl config set-context --current --namespace=streampai;
echo "context set to streampai";
telepresence helm install;
telepresence connect;
cp .env.example .env;
echo test
x=2
y=3
z=x+y
echo z
export testVar=testVal
e2e_tests: |
${startup}
Expand Down
9 changes: 5 additions & 4 deletions start.go → start/start.go
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package main
package start

import "github.com/spf13/viper"

func start(dirPath string) {
viper.SetConfigFile("optimus")
func Start(dirPath string) {
viper.SetConfigType("yaml")
viper.SetConfigName("optimus")
viper.AddConfigPath(dirPath)

err := viper.ReadInConfig()
if err != nil {
println(err)
}
z := viper.Get("services")
z := viper.GetString("start")
println(z)
}

0 comments on commit 81b889a

Please sign in to comment.