ソースを参照

Merge branch 'master' of https://bitbucket.org/cloudbase/coriolis

Alessandro Pilotti 10 年 前
コミット
134c45d17a
3 ファイル変更199 行追加199 行削除
  1. 160 160
      README.rst
  2. 33 33
      setup.cfg
  3. 6 6
      setup.py

+ 160 - 160
README.rst

@@ -1,160 +1,160 @@
-Project Coriolis
-================
-
-*Cloud Migration as a Service*
-
-
-Migrating existing workloads between clouds is a necessity for a large number
-of use cases, especially for user moving from traditional virtualization
-technologies like VMware vSphere or Microsoft System Center VMM to Azure /
-AzureStack, OpenStack, Amazon AWS or Google Cloud. Furthermore, cloud to cloud
-migrations, like AWS to Azure are also a common requirement.
-
-Project Coriolis™ addresses exactly those requirements, in particular migrating
-Linux (Ubuntu, Red Hat / CentOS, SUSE, Debian, Fedora) and Windows virtual
-machine, templates, storage and networking configurations.
-
-There are some tricky scenarios where Coriolis excels: to begin with, virtual
-machines need to be moved between different hypervisors, which means including
-new operating system drivers and tools, for example cloud-init / cloudbase-init
-in the OpenStack use case, LIS kernel modules on Hyper-V and Azure and so on.
-
-
-The project is largely using Oslo libraries with an architecture meant to be
-familiar for devops used to OpenStack, as shown in the diagram below.
-A clear separation between stateless microservices and proper usage of queues
-allows scalability and fault tolerance from the start. For PoCs and small
-environments, all components can be deployed on a single host / VM / container.
-
-Authentication and endpoint discovery is based on Keystone (in the typical
-OpenStack way), which means that passing an X-Auth-Token header from an
-existing Keystone session allows an easy integration with other components,
-e.g. in Horizon's console.
-The same token is passed to other components along the pipeline, which also
-implies that importing virtual machines and other resources to the same
-OpenStack infrastructure doesn’t require further authentication.
-
-Authentication to external clouds (Azure, AWS, etc) or virtualisation solutions
-(vSphere, SCVMM, etc) in order to export virtual resources requires credentials
-that can be saved in Barbican, thus avoiding the need to pass secrets directly
-to the API.
-
-Cloud resources that can be migrated:
-
-- Virtual machines
-- Virtual Mmchine templates
-- Storage
-- Network configurations
-
-VM disks are converted to the desired target format and drivers / tools are
-automatically added where appropriate during the process (e. cloud-init on
-OpenStack, KVM Windows VirtIO drivers, etc).
-
-The migration jobs are split in import / export tasks with a scheduler taking
-care of choosing a worker node where this can be executed. Each task contains
-progress update info that the client can poll to follow the progress of the
-operations. Tasks can be relatively long running, depending on the storage
-size, so proper status reporting was included in the design from the start.
-
-
-.. image:: https://cloudbase.it/wp-content/uploads/2016/02/coriolis-diagram.svg
-
-Keystone configuration
-----------------------
-
-Here's an example Keystone service and endpoints configuration:
-::
-
-    openstack service create --name coriolis --description "Cloud Migration as a Service" migration
-
-    ENDPOINT_URL="http://hostname:7667/v1/%(tenant_id)s"
-    openstack endpoint create --region RegionOne migration `
-    --publicurl $ENDPOINT_URL `
-    --internalurl $ENDPOINT_URL `
-    --adminurl $ENDPOINT_URL
-
-    openstack user create --password-prompt coriolis
-    openstack role add --project service --user coriolis admin
-
-API
----
-
-The API is also very straightforward, here’s a complete example available on
-Postman: https://www.getpostman.com/collections/734dc164d4b6b00cd8fc
-
-
-Create a migration job:
-
-    POST http://server:7667/v1/%project_id/migrations
-
-Example request body:
-::
-    {
-        "migration": {
-            "origin": {
-                "type": "vmware_vsphere",
-                "connection_info": {
-                    “secret_id": "ebe69d82-da6f-451e-a0f6-3551d0f7ef85"
-                }
-            },
-            "destination": {
-                "type": "openstack",
-                "target_environment": {
-                    "flavor_name": "m1.small",
-                    "network_map": {
-                        "VM Network": "private",
-                        "VM Network Local": "public"
-                    }
-                }
-            },
-            "instances": ["CentOS 7”, “RHEL 7.2”, “Ubuntu 14.04”, “WS 2012 R2"]
-        }
-    }
-
-Note: here’s an example secret stored in Barbican with vSphere connection info:
-::
-    {
-        "host": “10.0.0.10”,
-        "username": “user@vsphere.local",
-        "password": “Password",
-        "allow_untrusted": true
-    }
-
-List migrations:
-
-    GET http://server:7667/v1/%(project_id)s/migrations
-    GET http://server:7667/v1/%(project_id)s/migrations/detail
-
-
-Get a migration job info:
-
-    GET http://server:7667/v1/%(project_id)s/migrations/%(migration_id)s
-
-
-Cancel a migration job:
-
-This API allows the user to interrupt any running job.
-
-    POST http://server:7667/v1/%(project_id)s/migrations/%(migration_id)s/action
-
-Request body:
-::
-    { "cancel": null }
-
-
-Delete a migration job:
-
-    DELETE http://server:7667/v1/%(project_id)s/migrations/%(migration_id)s
-
-Note: only completed, failed or cancelled jobs can be deleted.
-
-
-API bindings
-------------
-
-We’re currently working on API bindings as well, starting with Python and
-Golang.
-
-Any feedback is well appreciated!
-
-.. _Python: http://www.python.org/
+Project Coriolis
+================
+
+*Cloud Migration as a Service*
+
+
+Migrating existing workloads between clouds is a necessity for a large number
+of use cases, especially for user moving from traditional virtualization
+technologies like VMware vSphere or Microsoft System Center VMM to Azure /
+AzureStack, OpenStack, Amazon AWS or Google Cloud. Furthermore, cloud to cloud
+migrations, like AWS to Azure are also a common requirement.
+
+Project Coriolis™ addresses exactly those requirements, in particular migrating
+Linux (Ubuntu, Red Hat / CentOS, SUSE, Debian, Fedora) and Windows virtual
+machine, templates, storage and networking configurations.
+
+There are some tricky scenarios where Coriolis excels: to begin with, virtual
+machines need to be moved between different hypervisors, which means including
+new operating system drivers and tools, for example cloud-init / cloudbase-init
+in the OpenStack use case, LIS kernel modules on Hyper-V and Azure and so on.
+
+
+The project is largely using Oslo libraries with an architecture meant to be
+familiar for devops used to OpenStack, as shown in the diagram below.
+A clear separation between stateless microservices and proper usage of queues
+allows scalability and fault tolerance from the start. For PoCs and small
+environments, all components can be deployed on a single host / VM / container.
+
+Authentication and endpoint discovery is based on Keystone (in the typical
+OpenStack way), which means that passing an X-Auth-Token header from an
+existing Keystone session allows an easy integration with other components,
+e.g. in Horizon's console.
+The same token is passed to other components along the pipeline, which also
+implies that importing virtual machines and other resources to the same
+OpenStack infrastructure doesn’t require further authentication.
+
+Authentication to external clouds (Azure, AWS, etc) or virtualisation solutions
+(vSphere, SCVMM, etc) in order to export virtual resources requires credentials
+that can be saved in Barbican, thus avoiding the need to pass secrets directly
+to the API.
+
+Cloud resources that can be migrated:
+
+- Virtual machines
+- Virtual Mmchine templates
+- Storage
+- Network configurations
+
+VM disks are converted to the desired target format and drivers / tools are
+automatically added where appropriate during the process (e. cloud-init on
+OpenStack, KVM Windows VirtIO drivers, etc).
+
+The migration jobs are split in import / export tasks with a scheduler taking
+care of choosing a worker node where this can be executed. Each task contains
+progress update info that the client can poll to follow the progress of the
+operations. Tasks can be relatively long running, depending on the storage
+size, so proper status reporting was included in the design from the start.
+
+
+.. image:: https://cloudbase.it/wp-content/uploads/2016/02/coriolis-diagram.svg
+
+Keystone configuration
+----------------------
+
+Here's an example Keystone service and endpoints configuration:
+::
+
+    openstack service create --name coriolis --description "Cloud Migration as a Service" migration
+
+    ENDPOINT_URL="http://hostname:7667/v1/%(tenant_id)s"
+    openstack endpoint create --region RegionOne migration `
+    --publicurl $ENDPOINT_URL `
+    --internalurl $ENDPOINT_URL `
+    --adminurl $ENDPOINT_URL
+
+    openstack user create --password-prompt coriolis
+    openstack role add --project service --user coriolis admin
+
+API
+---
+
+The API is also very straightforward, here’s a complete example available on
+Postman: https://www.getpostman.com/collections/734dc164d4b6b00cd8fc
+
+
+Create a migration job:
+
+    POST http://server:7667/v1/%project_id/migrations
+
+Example request body:
+::
+    {
+        "migration": {
+            "origin": {
+                "type": "vmware_vsphere",
+                "connection_info": {
+                    “secret_id": "ebe69d82-da6f-451e-a0f6-3551d0f7ef85"
+                }
+            },
+            "destination": {
+                "type": "openstack",
+                "target_environment": {
+                    "flavor_name": "m1.small",
+                    "network_map": {
+                        "VM Network": "private",
+                        "VM Network Local": "public"
+                    }
+                }
+            },
+            "instances": ["CentOS 7”, “RHEL 7.2”, “Ubuntu 14.04”, “WS 2012 R2"]
+        }
+    }
+
+Note: here’s an example secret stored in Barbican with vSphere connection info:
+::
+    {
+        "host": “10.0.0.10”,
+        "username": “user@vsphere.local",
+        "password": “Password",
+        "allow_untrusted": true
+    }
+
+List migrations:
+
+    GET http://server:7667/v1/%(project_id)s/migrations
+    GET http://server:7667/v1/%(project_id)s/migrations/detail
+
+
+Get a migration job info:
+
+    GET http://server:7667/v1/%(project_id)s/migrations/%(migration_id)s
+
+
+Cancel a migration job:
+
+This API allows the user to interrupt any running job.
+
+    POST http://server:7667/v1/%(project_id)s/migrations/%(migration_id)s/action
+
+Request body:
+::
+    { "cancel": null }
+
+
+Delete a migration job:
+
+    DELETE http://server:7667/v1/%(project_id)s/migrations/%(migration_id)s
+
+Note: only completed, failed or cancelled jobs can be deleted.
+
+
+API bindings
+------------
+
+We’re currently working on API bindings as well, starting with Python and
+Golang.
+
+Any feedback is well appreciated!
+
+.. _Python: http://www.python.org/

+ 33 - 33
setup.cfg

@@ -1,33 +1,33 @@
-[metadata]
-name = coriolis
-summary = Migration as a Service
-description-file =
-    README.rst
-author = Cloudbase Solutions SRL
-author-email = info@cloudbasesolutions.com
-home-page = http://cloudbase.it
-classifier =
-    Environment :: OpenStack
-    Intended Audience :: Information Technology
-    Intended Audience :: System Administrators
-    Operating System :: OS Independent
-    Programming Language :: Python
-    Programming Language :: Python :: 3
-    Programming Language :: Python :: 3.4
-
-[files]
-packages =
-    coriolis
-
-[global]
-setup-hooks =
-    pbr.hooks.setup_hook
-
-[entry_points]
-console_scripts =
-    coriolis-api = coriolis.cmd.api:main
-    coriolis-conductor = coriolis.cmd.conductor:main
-    coriolis-worker = coriolis.cmd.worker:main
-
-[wheel]
-universal = 1
+[metadata]
+name = coriolis
+summary = Migration as a Service
+description-file =
+    README.rst
+author = Cloudbase Solutions SRL
+author-email = info@cloudbasesolutions.com
+home-page = http://cloudbase.it
+classifier =
+    Environment :: OpenStack
+    Intended Audience :: Information Technology
+    Intended Audience :: System Administrators
+    Operating System :: OS Independent
+    Programming Language :: Python
+    Programming Language :: Python :: 3
+    Programming Language :: Python :: 3.4
+
+[files]
+packages =
+    coriolis
+
+[global]
+setup-hooks =
+    pbr.hooks.setup_hook
+
+[entry_points]
+console_scripts =
+    coriolis-api = coriolis.cmd.api:main
+    coriolis-conductor = coriolis.cmd.conductor:main
+    coriolis-worker = coriolis.cmd.worker:main
+
+[wheel]
+universal = 1

+ 6 - 6
setup.py

@@ -1,6 +1,6 @@
-import setuptools
-
-
-setuptools.setup(
-    setup_requires=['pbr>=1.8'],
-    pbr=True)
+import setuptools
+
+
+setuptools.setup(
+    setup_requires=['pbr>=1.8'],
+    pbr=True)