Skip to content

maestro-server/infraascode-maestro

Repository files navigation

Maestro Server

Maestro Server is an open source software platform for management and discovery servers, apps and system for Hybrid IT. Can manage small and large environments, be able to visualize the latest multi-cloud environment state.

Demo

To test out the demo, Demo Online

Maestro Server - Development Tools

Repository for infra as code

  • Docker compose
  • Vagrant box add
  • Kubernetes minikube
  • Kubernetes Prd

Run on kubernetes minikube

You can run Maestro server stack on minikube, got to kubernetes/minikube folder, we advice to start a deployment as database and queue message

kubectl apply -f rabbitmq/
kubectl apply -f mongodb/

Will create a simple deployment and internal expose service. You can use maildev to test a smtp box.

After start to up all services

kubectl apply -f maestro-data/
kubectl apply -f maestro-analytics-front/
kubectl apply -f maestro-analytics/
kubectl apply -f maestro-discovery/
kubectl apply -f maestro-reports/
kubectl apply -f maestro-scheduler/
kubectl apply -f maestro-server/
kubectl apply -f maestro-websocket/
kubectl apply -f maestro-client/

Or a simple one command

source run.sh

Now you can access on http://localhost:31240

Run on kubernetes cluster

Run a lot of services on kubernetes can be a trick, there are a lots of configuration, architectures and ways to accomplish this task the simple one is.

We can use a simple docker to run mongodb, but we advise to use stateful set service and deploy at least 3 replica sets, one of the best resources about mongo on kubernetes is http://k8smongodb.net/.

Rabbitmq it's used only in an async task without any critical point out, a simple container with good liveness can be enough.

After maestro use 4 secrets group, mongo_srv: It's a mongo srv string [mongo+srv://] or mongo_uri: It's old mongo url [mongo://] smtp: Smtp credencials used on forgot password feature storage: Bucket credencials to storage the avatar images, you can use a local or a s3 storage type.

To create a secret on kubernetes run

kubectl create secret generic mongo_srv --from-env-file ./secrets/mongo_srv.txt
kubectl create secret generic smtp --from-env-file ./secrets/smtp.txt
kubectl create secret generic storage --from-env-file ./secrets/storage.txt

At the moment you must have a mongo db and rabbitmq running all credentials stored on k8s secrets and one smtp service activated.

After these you can create an internals service in straight forward way:

kubectl apply -f maestro-data/
kubectl apply -f maestro-analytics/
kubectl apply -f maestro-discovery/
kubectl apply -f maestro-reports/
kubectl apply -f maestro-scheduler/

Next service require a external expose, by default we use LoadBalance services, each service will export a port by 80

kubectl apply -f maestro-analytics-front/
kubectl apply -f maestro-server/
kubectl apply -f maestro-websocket/

Now we need to configure our maestro-client service with all endpoints, open the maestro-client.yaml and change some env variables.

env:
- name: API_URL
    value: "//api.maestroserver.io" //maestro server endpoint
- name: STATIC_URL
    value: "https://s3.amazonaws.com/awsmaestro/" //if you use third bucket please put the full endpoint outherwise use /static/
- name: ANALYTICS_URL
    value: "//graphs.maestroserver.io" // analytics front endpoint
- name: WEBSOCKET_URL
    value: "wss://webscoket.maestroserver.io:8443" //websocket endpoint

And apply

kubectl apply -f maestro-client/

Contribute

Are you interested in developing Maestro Server, creating new features or extending them?

We created a set of documentation, explaining how to set up your development environment, coding styles, standards, learn about the architecture and more. Welcome to the team and contribute with us.

See our developer guide

Contact

We may be able to resolve support queries via email. Please send me a message here

Donate

I have made Maestro Server with my heart, think to solve a real operation IT problem. Its not easy, take time and resources.

The donation will be user to:

  • Create new features, implement new providers.
  • Maintenance libs, securities flaws, and technical points.

Buy Me A Coffee

Sponsor