Skip to content

Latest commit

 

History

History
90 lines (58 loc) · 3.72 KB

README.md

File metadata and controls

90 lines (58 loc) · 3.72 KB

Build Status

MICO

A Management System for Microservice Compositions

This is the main repository for the development project MICO at the University of Stuttgart in the masters course Software Engineering.

Installation

Supported Kubernetes cluster:

Currently, MICO is only tested with the Azure Kubernetes Service (AKS) and with the Google Kubernetes Engine (GKE). It may also work in other environments.

If you use GKE, please note that you must grant the user the ability to create roles in Kubernetes before installing MICO. This is a prerequisite to use use role-based access control on GKE. For more information see the GKE instructions.

Grant permission for the current user (GKE only):

kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin --user $(gcloud config list account --format "value(core.account)")

Requirements:

  • Kubernetes cluster version must be v1.11 or newer
  • kubectl CLI tool with version v1.10 or newer
  • DockerHub account (required to store Docker images of services that are build by MICO)

Configure kubectl to use the cluster in the current context.

Setup script:

The interactive setup script install/kubernetes/setup.sh will install all MICO components and its dependencies in your cluster.

Some cloud providers (like Microsoft Azure) offers the possibility to create a static public IP address. If you want to use such a static IP address to access the MICO dashboard you can provide it during the execution of the script. Otherwise your cloud provider will create automatically a IP address for it.

Execute the script:

./install/kubernetes/setup.sh

After the script is finished, the components (especially the Neo4j database) needs some time to be ready (up to 5 minutes).

Check the current deployment status of the MICO components until all pods are running:

kubectl get pods -n mico-system --watch

Get the public IP address (or the hostname) of the MICO dashboard:

kubectl get svc mico-admin -n mico-system -o jsonpath="{.status.loadBalancer.ingress[*]['ip', 'hostname']}"

Get the public IP address (or the hostname) of the OpenFaaS Portal:

kubectl get svc gateway-external -n openfaas -o jsonpath="{.status.loadBalancer.ingress[*]['ip', 'hostname']}"

Clean up:

kubectl delete -f install/kubernetes/

Tutorials

Documentation

Update Source File Headers

mico-core

It is easy to update the license headers of the mico-core project with IntelliJ IDEA. Create a Copyright Profile in Settings > Editor > Copyright > Copyright Profiles with the license from CONTRIBUTING.md. Set this profile to the default one for the project and use the "Update Copyright..." feature on the project root.