Exemplo n.º 1
0
class WebServerK8sDeployment(PODDeployment):
    """WebServer Kubernetes Deployment"""

    containers = [WebServerK8s]
    deployment_spec = read_spec("webserver_deployment.yaml")
    service_spec = read_spec("webserver_service.yaml")

    dependencies = [ref(PostgresDeployment)]
Exemplo n.º 2
0
class K8SDeployment1(SimpleDeployment):
    """K8SDeployment Description"""

    deployment_spec = read_spec("specs/deployment1.yaml")
    service_spec = read_spec("specs/service1.yaml")

    # dependencies to indicate provisioning of K8sDeployment1 is dependent of the MySQLDeployment creation
    # deployment-level dependency
    dependencies = [ref(MySQLDeployment)]
Exemplo n.º 3
0
class K8SDeployment1(PODDeployment):
    """ Sample K8S Deployment """

    containers = [RedisService, DiscourseService]
    deployment_spec = read_spec("specs/deployment1.yaml")
    service_spec = read_spec("specs/service1.yaml")

    # dependencies to indicate provisioning of K8sDeployment1 is dependent of the MySQLDeployment creation
    dependencies = [ref(MySQLDeployment)]
Exemplo n.º 4
0
class K8SDeployment2(PODDeployment):
    """ Sample K8S Deployment """

    containers = [MailService]
    deployment_spec = read_spec("specs/deployment2.yaml")
    service_spec = read_spec("specs/service2.yaml")

    # Dependency indicates Provision of K8sDeployment will happen after PHP Deployment is created
    dependencies = [ref(PHPDeployment)]
Exemplo n.º 5
0
class DiscourseDeployment(SimpleDeployment):
    """Discourse Deployment"""

    deployment_spec = read_spec("discourse_deployment.yaml")
    service_spec = read_spec("discourse_service.yaml")

    dependencies = [
        ref(AHVPostgres),
        ref(MailDeployment),
        ref(RedisDeployment)
    ]

    @action
    def sample_action(container_name="discourse"):
        Task.Exec.escript(name="Sample Task", script="print 'Hello!'")
Exemplo n.º 6
0
def create_project_from_file(file_location, project_name):

    project_payload = read_spec(file_location)
    if project_name:
        project_payload["project_detail"]["name"] = project_name

    return create_project(project_payload)
Exemplo n.º 7
0
class AhvSubstrate(Substrate):
    """AHV VM config given by reading a spec file"""

    provider_spec = read_provider_spec("specs/ahv_provider_spec.yaml")
    provider_spec_editables = read_spec("specs/ahv_substrate_editable.yaml")

    readiness_probe = readiness_probe(
        connection_type="SSH",
        credential=ref(DefaultCred),
        disabled=True,
        editables_list=["connection_port", "retries"],
    )
Exemplo n.º 8
0
def _update_project(project_name, project_file):
    """Updates a project"""

    if project_file.endswith(".json") or project_file.endswith(".yaml"):
        payload = read_spec(project_file)
        res, err = update_project(project_name, payload)
    else:
        LOG.error("Unknown file format")
        return

    if err:
        raise Exception("[{}] - {}".format(err["code"], err["error"]))

    project = res.json()
    state = project["status"]["state"]
    LOG.info("Project state: {}".format(state))
Exemplo n.º 9
0
def test_decompile():

    spec = read_spec("ahv_spec.json")

    # Correct nic uuids
    for nic in spec["resources"]["nic_list"]:
        nic["subnet_reference"]["name"] = NETWORK1
        nic["subnet_reference"]["uuid"] = NETWORK1_UUID

    disk_list = spec["resources"]["disk_list"]
    disk_list[0]["data_source_reference"]["name"] = CENTOS_HM
    disk_list[0]["data_source_reference"]["uuid"] = CENTOS_HM_UUID

    disk_list[1]["data_source_reference"]["name"] = SQL_SERVER_IMAGE
    disk_list[1]["data_source_reference"]["uuid"] = SQL_SERVER_IMAGE_UUID

    disk_list[2]["data_source_reference"]["name"] = SQL_SERVER_IMAGE
    disk_list[2]["data_source_reference"]["uuid"] = SQL_SERVER_IMAGE_UUID

    disk_list[3]["data_source_reference"]["name"] = SQL_SERVER_IMAGE
    disk_list[3]["data_source_reference"]["uuid"] = SQL_SERVER_IMAGE_UUID

    disk_list[4]["data_source_reference"]["name"] = CENTOS_CI
    disk_list[4]["data_source_reference"]["uuid"] = CENTOS_CI_UUID

    boot_config = spec["resources"].get("boot_config", {})
    vm_cls = AhvVmType.decompile(spec)
    print(render_ahv_vm(vm_cls, boot_config))

    vm_resources = vm_cls.resources
    print(render_ahv_vm_resources(vm_resources, boot_config=boot_config))

    # Get rendered disks
    for disk in vm_resources.disks:
        print(render_ahv_vm_disk(disk, boot_config))

    for nic in vm_resources.nics:
        print(render_ahv_vm_nic(nic))

    # TODO take care of generating file
    guest_customization_str = render_ahv_vm_gc(
        vm_resources.guest_customization, vm_name_prefix="vm_test")
    print(guest_customization_str)

    for gpu in vm_resources.gpus:
        print(render_ahv_vm_gpu(gpu))
Exemplo n.º 10
0
def test_decompile():

    spec = read_spec("ahv_spec.json")
    boot_config = spec["resources"].get("boot_config", {})
    vm_cls = AhvVmType.decompile(spec)
    print(render_ahv_vm(vm_cls, boot_config))

    vm_resources = vm_cls.resources
    print(render_ahv_vm_resources(vm_resources, boot_config=boot_config))

    # Get rendered disks
    for disk in vm_resources.disks:
        print(render_ahv_vm_disk(disk, boot_config))

    for nic in vm_resources.nics:
        print(render_ahv_vm_nic(nic))

    # TODO take care of generating file
    guest_customization_str = render_ahv_vm_gc(
        vm_resources.guest_customization, vm_name_prefix="vm_test")
    print(guest_customization_str)

    for gpu in vm_resources.gpus:
        print(render_ahv_vm_gpu(gpu))
Exemplo n.º 11
0
class mongo_db_deployment(PODDeployment):
    """Mongo DB Deployment"""

    containers = [mongo_db_service]
    deployment_spec = read_spec("mongo_deployment.yaml")
    service_spec = read_spec("mongo_service.yaml")
Exemplo n.º 12
0
class RedisK8SDeployment(PODDeployment):
    """ Redis Deployment on K8S """

    containers = [RedisService]
    deployment_spec = read_spec("deployment.yaml")
    service_spec = read_spec("service.yaml")
Exemplo n.º 13
0
from calm.dsl.builtins import Service, Package, Substrate
from calm.dsl.builtins import Deployment, Profile, Blueprint
from calm.dsl.builtins import CalmVariable, CalmTask, action
from calm.dsl.builtins import read_local_file


CENTOS_PASSWORD = read_local_file("password")
CENTOS_KEY = read_local_file("private_key")

DefaultCred = basic_cred("centos", CENTOS_PASSWORD, name="CENTOS")
CentosKeyCred = basic_cred(
    "centos", CENTOS_KEY, name="CENTOS_KEY", type="KEY", default=True
)
Era_Disk = vm_disk_package(
    name="era_disk", config=read_spec("image_configs/era_disk.yaml")
)
Virtio_CdRom = vm_disk_package(
    name="virtio_cdrom", config_file="image_configs/virtio_cdrom.yaml"
)


class MySQLService(Service):
    """Sample mysql service"""

    ENV = CalmVariable.Simple("DEV")


class MySQLPackage(Package):
    """Example package with variables, install tasks and link to service"""
Exemplo n.º 14
0
from calm.dsl.builtins import Service, Package, Substrate
from calm.dsl.builtins import Deployment, Profile, Blueprint
from calm.dsl.builtins import CalmVariable, CalmTask, action
from calm.dsl.builtins import read_local_file

CENTOS_PASSWORD = read_local_file(".tests/password")
CENTOS_KEY = read_local_file("private_key")

DefaultCred = basic_cred("centos", CENTOS_PASSWORD, name="CENTOS")
CentosKeyCred = basic_cred("centos",
                           CENTOS_KEY,
                           name="CENTOS_KEY",
                           type="KEY",
                           default=True)
Era_Disk = vm_disk_package(name="era_disk",
                           config=read_spec("image_configs/era_disk.yaml"))
Virtio_CdRom = vm_disk_package(name="virtio_cdrom",
                               config_file="image_configs/virtio_cdrom.yaml")


class MySQLService(Service):
    """Sample mysql service"""

    ENV = CalmVariable.Simple("DEV")


class MySQLPackage(Package):
    """Example package with variables, install tasks and link to service"""

    foo = CalmVariable.Simple("bar")
    services = [ref(MySQLService)]
Exemplo n.º 15
0
class DiscourseDeployment(PODDeployment):
    """Discourse Deployment"""

    containers = [DiscourseContainer]
    deployment_spec = read_spec("discourse_deployment.yaml")
    service_spec = read_spec("discourse_service.yaml")
Exemplo n.º 16
0
class RedisDeployment(PODDeployment):
    """Redis Deployment"""

    containers = [RedisContainer]
    deployment_spec = read_spec("redis_deployment.yaml")
    service_spec = read_spec("redis_service.yaml")
Exemplo n.º 17
0
class MailDeployment(PODDeployment):
    """Mail Deployment"""

    containers = [MailContainer]
    deployment_spec = read_spec("mail_deployment.yaml")
    service_spec = read_spec("mail_service.yaml")
Exemplo n.º 18
0
from calm.dsl.builtins import AhvVmDisk, AhvVmNic, AhvVmGC
from calm.dsl.builtins import ref, basic_cred, AhvVmResources, AhvVm
from calm.dsl.builtins import vm_disk_package, read_spec

from calm.dsl.builtins import Service, Package, Substrate
from calm.dsl.builtins import Deployment, Profile, Blueprint
from calm.dsl.builtins import CalmVariable, CalmTask, action
from calm.dsl.builtins import read_local_file


CENTOS_PASSWORD = read_local_file("password")
CENTOS_KEY = read_local_file("private_key")

DefaultCred = basic_cred("centos", CENTOS_PASSWORD, name="CENTOS")
CentosKeyCred = basic_cred("centos", CENTOS_KEY, name="CENTOS_KEY", type="KEY", default=True)
Era_Disk = vm_disk_package(name="era_disk", config=read_spec("image_configs/era_disk.yaml"))
Virtio_CdRom = vm_disk_package(name="virtio_cdrom", config_file="image_configs/virtio_cdrom.yaml")


class MySQLService(Service):
    """Sample mysql service"""

    ENV = CalmVariable.Simple("DEV")


class MySQLPackage(Package):
    """Example package with variables, install tasks and link to service"""

    foo = CalmVariable.Simple("bar")
    services = [ref(MySQLService)]
Exemplo n.º 19
0
class nginx_deployment(PODDeployment):
    """Nginx Deployment"""

    containers = [nginx_service]
    deployment_spec = read_spec("nginx_deployment.yaml")
    service_spec = read_spec("nginx_service.yaml")
Exemplo n.º 20
0
class nodejs_deployment(PODDeployment):
    """NodeJS Deployment"""

    containers = [nodejs_service]
    deployment_spec = read_spec("nodejs_deployment.yaml")
    service_spec = read_spec("nodejs_service.yaml")
Exemplo n.º 21
0
class MailDeployment(SimpleDeployment):
    """Mail Deployment"""

    deployment_spec = read_spec("mail_deployment.yaml")
    service_spec = read_spec("mail_service.yaml")
Exemplo n.º 22
0
class RedisDeployment(SimpleDeployment):
    """Redis Deployment"""

    deployment_spec = read_spec("redis_deployment.yaml")
    service_spec = read_spec("redis_service.yaml")