# OSM on kubernetes

## Proposer ##
Michael Marchetti (Sandvine)

## Type ##
**Feature**

## Target MDG/TF ##
all MDG's

## Description ##
The OSM installer currently asssumes it will be installed on a host (or VM). The MDG
components/services are deployed in separate lxc containers. A Release4 directive is to simplify
the install process. Moving to docker containers will help with this strategy as the MDG images
that are built and tested in the CI pipeline can be installed directly without having to go through
a long term install process. Subsequently, the docker OSM components now need to be orchestrated
with one another (UI<->SO<->RO, etc), and utilizing kubernetes will simplify this.