Bug Reference

CLOUDSTACK-8249

Branch

dockerfile

Introduction

Purpose

Provide Docker images collection of Apache CloudStack modules thru automated build on docker hub. These containers will be usable for Continous Integration tests, demo, rapid deployment of CloudStack for test purposes.

References

Document History

Glossary

Feature Specifications

Use cases

Docker container could be use as part of the CI to perform automated tests against automatically deployed cloud. Can be used for trial of CloudStack.

Architecture and Design description

  • discussion of alternatives amongst design ideas, their resources/time tradeoffs and limitations. Explain why a certain design idea is chosen over others
  • highlight architectural patterns being used (queues, async/sync, state machines, etc)
  • talk about main algorithms used
  • explain what components are being changed and what the dependent components are
  • regarding database: talk about tables being added/modified
  • performance implications: what are the improvements or risks introduced to capacity, response time, resources usage and other relevant KPIs
  • preferably show class diagrams, sequence diagrams and state diagrams
  • if possible, publish signatures of all methods classes and interfaces implement, and the explain the object information of different classes

UserGuide

Prerequisites

  • NFS server with share for  primary and secondary storage
  • Hypervisor ready to be managed
  • docker host
  • preconfigured network


Self deployed cloud using XenServer

  1. Download images

    docker pull cloudstack/management_centos6
    docker pull cloudstack/marvin
  2. prepare Secondary Storage NFS share for the systemVM template

    The NFS server should not run on the management-server.

    mount <NFS IP>:/share/secondary /data/secondary
  3. Start CloudStack Management server

    docker run --name cloudstack -d -p 8080:8080 -v /data/secondary:/secondary cloudstack/management_centos6
  4. Download systemVM template of your choice:

    (This will take a moment...)

    docker exec -ti cloudstack /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt \
    -m /secondary \
    -u http://jenkins.buildacloud.org/job/build-systemvm64-master/lastSuccessfulBuild/artifact/tools/appliance/dist/systemvm64template-master-4.6.0-xen.vhd.bz2 \
    -h xenserver -F
  5. Create a cloud configuration file, this example use mytests/mycloud.cfg filename as example.

    refer to setup/dev example from cloudstack source.

    Make sure to use following statement (hypervisor can change) for the CloudStack endpoint:

    advanced.cfg
    "mgtSvr": [
        {
          "mgtSvrIp": "cloudstack",
          "passwd": "password",
          "user": "root",
          "port": 8096,
          "hypervisor": "xenserver",
          "useHttps": "False",
          "certCAPath":  "NA",
          "certPath":  "NA"
        }
      ]
  6. Deploy your Cloud from a configuration file using Marvin:

    docker run -ti --name marvin --link cloudstack:8096 \
               -v /data/home/jdoe/Documents/acs:/marvin/mytests \
               docker.io/cloudstack/marvin \
               python marvin/deployDataCenter.py \
               -i mytests/mycloud.cfg


    This will mount mytests/ into the container and execute marvin to deploy DataCenter using api port, cloudstack:8096.