A method performed by a computing system, the method comprising: receiving instructions to re-deploy an application from one or more VMs to a container environment; reading a manifest file containing information regarding the application running on one or more Virtual Machines, VMs, wherein the information includes application topology, credentials, and configuration details; discovering, based on information in the manifest file, application consumption attributes including attributes of storage, computer, and network resources consumed by a workload of the application; deploying the application on the container environment based on the discovered information to produce a containerized application; copying configuration details from the manifest file to the containerized application; migrating, based on information in the manifest file and the discovered application consumption attributes, stateful data to the containerized application; and validating the containerized application functionality, wherein migrating stateful data to the containerized application includes: determining whether data stored in an Operating System volume can be accessed by the container environment; migrating data from the OS volume to the destination container environment when it is determined that data stored in the OS volume cannot be accessed by the container environment; and detaching the OS volume from the one or more VMs and attaching the volume to the container environment when it is determined that data stored in the OS volume can be accessed by the container environment. receiving instructions to re-deploy an application from one or more VMs to a container environment; reading a manifest file containing information regarding the application running on one or more Virtual Machines, VMs, wherein the information includes application topology, credentials, and configuration details; discovering, based on information in the manifest file, application consumption attributes including attributes of storage, computer, and network resources consumed by a workload of the application; deploying the application on the container environment based on the discovered information to produce a containerized application; copying configuration details from the manifest file to the containerized application; migrating, based on information in the manifest file and the discovered application consumption attributes, stateful data to the containerized application; and validating the containerized application functionality, wherein migrating stateful data to the containerized application includes: determining whether data stored in an Operating System volume can be accessed by the container environment; migrating data from the OS volume to the destination container environment when it is determined that data stored in the OS volume cannot be accessed by the container environment; and detaching the OS volume from the one or more VMs and attaching the volume to the container environment when it is determined that data stored in the OS volume can be accessed by the container environment. determining whether data stored in an Operating System volume can be accessed by the container environment; migrating data from the OS volume to the destination container environment when it is determined that data stored in the OS volume cannot be accessed by the container environment; and detaching the OS volume from the one or more VMs and attaching the volume to the container environment when it is determined that data stored in the OS volume can be accessed by the container environment.