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)]
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)]
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)]
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)]
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!'")
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)
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"], )
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))
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))
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))
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")
class RedisK8SDeployment(PODDeployment): """ Redis Deployment on K8S """ containers = [RedisService] deployment_spec = read_spec("deployment.yaml") service_spec = read_spec("service.yaml")
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"""
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)]
class DiscourseDeployment(PODDeployment): """Discourse Deployment""" containers = [DiscourseContainer] deployment_spec = read_spec("discourse_deployment.yaml") service_spec = read_spec("discourse_service.yaml")
class RedisDeployment(PODDeployment): """Redis Deployment""" containers = [RedisContainer] deployment_spec = read_spec("redis_deployment.yaml") service_spec = read_spec("redis_service.yaml")
class MailDeployment(PODDeployment): """Mail Deployment""" containers = [MailContainer] deployment_spec = read_spec("mail_deployment.yaml") service_spec = read_spec("mail_service.yaml")
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)]
class nginx_deployment(PODDeployment): """Nginx Deployment""" containers = [nginx_service] deployment_spec = read_spec("nginx_deployment.yaml") service_spec = read_spec("nginx_service.yaml")
class nodejs_deployment(PODDeployment): """NodeJS Deployment""" containers = [nodejs_service] deployment_spec = read_spec("nodejs_deployment.yaml") service_spec = read_spec("nodejs_service.yaml")
class MailDeployment(SimpleDeployment): """Mail Deployment""" deployment_spec = read_spec("mail_deployment.yaml") service_spec = read_spec("mail_service.yaml")
class RedisDeployment(SimpleDeployment): """Redis Deployment""" deployment_spec = read_spec("redis_deployment.yaml") service_spec = read_spec("redis_service.yaml")