From: Krzysztof Bijakowski Date: Mon, 28 Aug 2017 14:52:39 +0000 (+0200) Subject: Draft Cloudify blueprint for provisioning ONAP X-Git-Tag: 2.0.0-ONAP~719^2 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=oom.git;a=commitdiff_plain;h=652bdc5eb7993af3d9841a4cf329ed63850f48d0 Draft Cloudify blueprint for provisioning ONAP Issue-ID: OOM-106 Change-Id: Ief907fd3d4fcac5d6e688b21d926f2c87e2247d8 Signed-off-by: Krzysztof Bijakowski --- diff --git a/cloudify/scripts/onap/patch_definitions.py b/cloudify/scripts/onap/patch_definitions.py new file mode 100644 index 0000000000..d43e921593 --- /dev/null +++ b/cloudify/scripts/onap/patch_definitions.py @@ -0,0 +1 @@ +from cloudify import ctx diff --git a/cloudify/scripts/onap/provision_definitions.py b/cloudify/scripts/onap/provision_definitions.py new file mode 100644 index 0000000000..d43e921593 --- /dev/null +++ b/cloudify/scripts/onap/provision_definitions.py @@ -0,0 +1 @@ +from cloudify import ctx diff --git a/cloudify/scripts/onap/read_definitions.py b/cloudify/scripts/onap/read_definitions.py new file mode 100644 index 0000000000..d43e921593 --- /dev/null +++ b/cloudify/scripts/onap/read_definitions.py @@ -0,0 +1 @@ +from cloudify import ctx diff --git a/cloudify/types/onap.yaml b/cloudify/types/onap.yaml new file mode 100644 index 0000000000..20ef33f2f3 --- /dev/null +++ b/cloudify/types/onap.yaml @@ -0,0 +1,34 @@ +node_types: + cloudify.onap.kubernetes.App: + derived_from: cloudify.nodes.Root + properties: + name: + type: string + description: > + Name of ONAP app + resources: + description: > + List of paths (relative, blueprint prespective) + to all kubernetes resources YAML files definition + default: [] + services: + type: string + description: > + Path (relative, blueprint prespective) + to kubernetes app services YAML file definition + default: [] + inputs: + description: > + Parameters required to create kubernetes resources for each app + default: {} + interfaces: + cloudify.interfaces.lifecycle: + create: + implementation: cloudify/scripts/onap/read_definitions.py + executor: central_deployment_agent + configure: + implementation: cloudify/scripts/onap/patch_definitions.py + executor: central_deployment_agent + start: + implementation: cloudify/scripts/onap/provision_definitions.py + executor: central_deployment_agent diff --git a/onap-blueprint.yaml b/onap-blueprint.yaml new file mode 100644 index 0000000000..50ac29b997 --- /dev/null +++ b/onap-blueprint.yaml @@ -0,0 +1,240 @@ +tosca_definitions_version: cloudify_dsl_1_3 + +description: > + Blueprint deploys all ONAP kubernetes resources defined in YAML files on existing kubernetes cluster + The following pre-setup steps are assumed, but not required: + - Create Cloudify Example Environment: https://github.com/cloudify-examples/cloudify-environment-setup. + - Create Kubernetes Cluster: https://github.com/cloudify-examples/simple-kubernetes-blueprint. + +imports: + - https://raw.githubusercontent.com/cloudify-cosmo/cloudify-manager/4.1/resources/rest-service/cloudify/types/types.yaml + # Plugin required: https://github.com/cloudify-incubator/cloudify-kubernetes-plugin/releases/download/1.2.0/cloudify_kubernetes_plugin-1.2.0-py27-none-linux_x86_64-centos-Core.wgn + - https://raw.githubusercontent.com/cloudify-incubator/cloudify-kubernetes-plugin/1.2.0/plugin.yaml + - cloudify/types/onap.yaml + +inputs: + kubernetes_configuration_file_content: + description: > + File content of kubernetes master YAML configuration + + apps: + description: > + List of ONAP apps names to be deployed. + Default empty array (deploy all available apps). + default: [] + + namespace_prefix: + type: string + description: > + Kubernetes namespace name prefix which will be uese for all ONAP apps + default: onap + + docker_registry: + type: string + default: regsecret + + docker_server: + type: string + default: nexus3.onap.org:10001 + + docker_username: + type: string + default: docker + + docker_password: + type: string + default: docker + + docker_email: + type: string + default: email@email.com + +dsl_definitions: + inputs: &app_inputs + namespace_prefix: { get_input: namespace_prefix } + docker_registry: { get_input: docker_registry } + docker_server: { get_input: docker_server } + docker_username: { get_input: docker_username } + docker_password: { get_input: docker_password } + docker_email: { get_input: docker_email } + +node_templates: + kubernetes_master: + type: cloudify.kubernetes.nodes.Master + properties: + configuration: + file_content: { get_input: kubernetes_configuration_file_content } + + init_pod: + type: cloudify.kubernetes.resources.Pod + properties: + definition: + file: + resource_path: kubernetes/config/pod-config-init.yaml + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master + + mso_app: + type: cloudify.onap.kubernetes.App + properties: + name: mso + resources: + - kubernetes/mso/templates/mso-deployment.yaml + - kubernetes/mso/templates/db-deployment.yaml + services: kubernetes/mso/templates/all-services.yaml + inputs: *app_inputs + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master + - type: cloudify.relationships.depends_on + target: init_pod + + message_router_app: + type: cloudify.onap.kubernetes.App + properties: + name: message-router + resources: + - kubernetes/message-router/templates/message-router-zookeeper.yaml + - kubernetes/message-router/templates/message-router-dmaap.yaml + - kubernetes/message-router/templates/message-router-kafka.yaml + services: kubernetes/message-router/templates/all-services.yaml + inputs: *app_inputs + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master + - type: cloudify.relationships.depends_on + target: init_pod + + sdc_app: + type: cloudify.onap.kubernetes.App + properties: + name: sdc + resources: + - kubernetes/sdc/sdc-es.yaml + - kubernetes/sdc/sdc-fe.yaml + - kubernetes/sdc/sdc-kb.yaml + - kubernetes/sdc/sdc-cs.yaml + - kubernetes/sdc/sdc-be.yaml + services: kubernetes/sdc/all-services.yaml + inputs: *app_inputs + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master + - type: cloudify.relationships.depends_on + target: init_pod + + aai_app: + type: cloudify.onap.kubernetes.App + properties: + name: aai + resources: + - kubernetes/aai/aai-deployment.yaml + - kubernetes/aai/modelloader-deployment.yaml + - kubernetes/aai/hbase-deployment.yaml + services: kubernetes/aai/all-services.yaml + inputs: *app_inputs + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master + - type: cloudify.relationships.depends_on + target: init_pod + + robot_app: + type: cloudify.onap.kubernetes.App + properties: + name: robot + resources: + - kubernetes/robot/robot-deployment.yaml + services: kubernetes/robot/all-services.yaml + inputs: *app_inputs + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master + - type: cloudify.relationships.depends_on + target: init_pod + + vid_app: + type: cloudify.onap.kubernetes.App + properties: + name: vid + resources: + - kubernetes/vid/vid-mariadb-deployment.yaml + - kubernetes/vid/vid-server-deployment.yaml + services: kubernetes/vid/all-services.yaml + inputs: *app_inputs + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master + - type: cloudify.relationships.depends_on + target: init_pod + + sdnc_app: + type: cloudify.onap.kubernetes.App + properties: + name: sdnc + resources: + - kubernetes/sdnc/web-deployment.yaml + - kubernetes/sdnc/sdnc-deployment.yaml + - kubernetes/sdnc/dgbuilder-deployment.yaml + - kubernetes/sdnc/db-deployment.yaml + services: kubernetes/sdnc/all-services.yaml + inputs: *app_inputs + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master + - type: cloudify.relationships.depends_on + target: init_pod + + portal_app: + type: cloudify.onap.kubernetes.App + properties: + name: portal + resources: + - kubernetes/portal/portal-widgets-deployment.yaml + - kubernetes/portal/portal-apps-deployment.yaml + - kubernetes/portal/portal-mariadb-deployment.yaml + - kubernetes/portal/portal-vnc-dep.yaml + services: kubernetes/portal/all-services.yaml + inputs: *app_inputs + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master + - type: cloudify.relationships.depends_on + target: init_pod + + policy_app: + type: cloudify.onap.kubernetes.App + properties: + name: policy + resources: + - kubernetes/policy/dep-drools.yaml + - kubernetes/policy/dep-nexus.yaml + - kubernetes/policy/dep-brmsgw.yaml + - kubernetes/policy/dep-pdp.yaml + - kubernetes/policy/dep-pap.yaml + - kubernetes/policy/dep-maria.yaml + - kubernetes/policy/dep-pypdp.yaml + services: kubernetes/policy/all-services.yaml + inputs: *app_inputs + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master + - type: cloudify.relationships.depends_on + target: init_pod + + appc_app: + type: cloudify.onap.kubernetes.App + properties: + name: appc + resources: + - kubernetes/appc/appc-deployment.yaml + - kubernetes/appc/dgbuilder-deployment.yaml + - kubernetes/appc/db-deployment.yaml + services: kubernetes/appc/all-services.yaml + inputs: *app_inputs + relationships: + - type: cloudify.kubernetes.relationships.managed_by_master + target: kubernetes_master + - type: cloudify.relationships.depends_on + target: init_pod