plugins: hpc: # Could be 'central_deployment_agent' or 'host_agent'. # If 'central_deployment_agent', this plugin will be executed on the # deployment dedicated agent, other wise it will be executed on the host agent. executor: central_deployment_agent # URL to archive containing the plugin or name of directory containing # the plugin if it is included in the the blueprint directory under the # "plugins" directory. source: https://github.com/MSO4SC/cloudify-hpc-plugin/archive/master.zip package_name: cloudify-hpc-plugin package_version: '2.1.2' workflows: run_jobs: mapping: hpc.hpc_plugin.workflows.run_jobs node_types: hpc.nodes.WorkloadManager: derived_from: cloudify.nodes.Compute properties: config: description: type, and optionally timezone credentials: description: SSH credentials external_monitor_entrypoint: description: Monitor entrypoint, port and orchestrator port default: "" type: string external_monitor_port: description: Monitor entrypoint, port and orchestrator port default: ":9090" type: string external_monitor_type: description: Monitor type, e.g PROMETHEUS default: "PROMETHEUS" type: string external_monitor_orchestrator_port: description: Monitor entrypoint, port and orchestrator port default: ":8079" type: string job_prefix: description: Job name prefix for this HPC default: "cfyhpc" type: string base_dir: description: Root directory of all executions default: "$HOME" type: string workdir_prefix: description: Prefix of the working directory instead of blueprint name default: "" type: string monitor_period: description: Seconds to check job status. default: 60 type: integer simulate: description: Set to true to simulate job without sending it type: boolean default: False skip_cleanup: description: True to not clean all files at deployment removal type: boolean default: False agent_config: default: install_method: none interfaces: cloudify.interfaces.lifecycle: configure: implementation: hpc.hpc_plugin.tasks.configure_execution inputs: config: default: { get_property: [SELF, config] } credentials: default: { get_property: [SELF, credentials] } base_dir: default: { get_property: [SELF, base_dir] } workdir_prefix: default: { get_property: [SELF, workdir_prefix] } simulate: default: { get_property: [SELF, simulate] } delete: implementation: hpc.hpc_plugin.tasks.cleanup_execution inputs: config: default: { get_property: [SELF, config] } credentials: default: { get_property: [SELF, credentials] } skip: default: { get_property: [SELF, skip_cleanup] } simulate: default: { get_property: [SELF, simulate] } cloudify.interfaces.monitoring: start: implementation: hpc.hpc_plugin.tasks.start_monitoring_hpc inputs: config: default: { get_property: [SELF, config] } credentials: default: { get_property: [SELF, credentials] } external_monitor_entrypoint: default: { get_property: [SELF, external_monitor_entrypoint] } external_monitor_port: default: { get_property: [SELF, external_monitor_port] } external_monitor_orchestrator_port: default: { get_property: [SELF, external_monitor_orchestrator_port] } simulate: default: { get_property: [SELF, simulate] } stop: implementation: hpc.hpc_plugin.tasks.stop_monitoring_hpc inputs: config: default: { get_property: [SELF, config] } credentials: default: { get_property: [SELF, credentials] } external_monitor_entrypoint: default: { get_property: [SELF, external_monitor_entrypoint] } external_monitor_port: default: { get_property: [SELF, external_monitor_port] } external_monitor_orchestrator_port: default: { get_property: [SELF, external_monitor_orchestrator_port] } simulate: default: { get_property: [SELF, simulate] } hpc.nodes.Job: derived_from: cloudify.nodes.Root properties: deployment: description: Deployment script and inputs default: {} job_options: description: Job main command and options publish: description: Config to publish its outputs default: [] skip_cleanup: description: True to not clean after execution (debug purposes) type: boolean default: False interfaces: cloudify.interfaces.lifecycle: start: # needs to be start to have the hpc credentials implementation: hpc.hpc_plugin.tasks.bootstrap_job inputs: deployment: description: Deployment scripts and inputs default: { get_property: [SELF, deployment] } skip_cleanup: default: { get_property: [SELF, skip_cleanup] } stop: implementation: hpc.hpc_plugin.tasks.revert_job inputs: deployment: description: Undeployment script and inputs default: { get_property: [SELF, deployment] } skip_cleanup: default: { get_property: [SELF, skip_cleanup] } hpc.interfaces.lifecycle: queue: implementation: hpc.hpc_plugin.tasks.send_job inputs: job_options: default: { get_property: [SELF, job_options] } publish: implementation: hpc.hpc_plugin.tasks.publish inputs: publish_list: default: { get_property: [SELF, publish] } cleanup: implementation: hpc.hpc_plugin.tasks.cleanup_job inputs: job_options: default: { get_property: [SELF, job_options] } skip: default: { get_property: [SELF, skip_cleanup] } cancel: implementation: hpc.hpc_plugin.tasks.stop_job inputs: job_options: default: { get_property: [SELF, job_options] } hpc.nodes.SingularityJob: derived_from: hpc.nodes.Job relationships: wm_contained_in: derived_from: cloudify.relationships.contained_in source_interfaces: cloudify.interfaces.relationship_lifecycle: preconfigure: implementation: hpc.hpc_plugin.tasks.preconfigure_wm inputs: config: default: { get_property: [SOURCE, config] } credentials: default: { get_property: [SOURCE, credentials] } simulate: default: { get_property: [SOURCE, simulate] } job_managed_by_wm: derived_from: cloudify.relationships.contained_in source_interfaces: cloudify.interfaces.relationship_lifecycle: preconfigure: implementation: hpc.hpc_plugin.tasks.preconfigure_job inputs: config: default: { get_property: [TARGET, config] } credentials: default: { get_property: [TARGET, credentials] } external_monitor_entrypoint: default: { get_property: [TARGET, external_monitor_entrypoint] } external_monitor_port: default: { get_property: [TARGET, external_monitor_port] } external_monitor_type: default: { get_property: [TARGET, external_monitor_type] } external_monitor_orchestrator_port: default: { get_property: [TARGET, external_monitor_orchestrator_port] } job_prefix: default: { get_property: [TARGET, job_prefix] } monitor_period: default: { get_property: [TARGET, monitor_period] } simulate: default: { get_property: [TARGET, simulate] } job_depends_on: derived_from: cloudify.relationships.depends_on