Built-in Node Types
Abstract Types
The following node_types are basic types from which concrete types with specific plugin implementations are derived.
-
cloudify.nodes.Root- The base type for all built-in types- Declares the following interfaces:
cloudify.interfaces.lifecycle: An interface for standard life cycle operations (e.g. create, start, stop, etc.). Operations of this interface are called from the built-in install and uninstall workflows.cloudify.interfaces.validation: An interface for pre-creation and pre-deletion validation operations. These can be called by using the execute_operation built-in workflow or by a custom workflow.cloudify.interfaces.monitoring: An interface for monitoring configuration. Operations of this interface are called from the built-in install and uninstall workflows.
- These are the properties, also inherited by all
cloudify.nodes.Rootchildren:use_external_resource- Indicate whether the resource exists or if Conductor should create the resource, true if you are bringing an existing resource, false if you want cloudify to create it; Boolean, false by default. In case this property is true, any properties marked as required will not be mandatory.resource_id- Property which identifies the external resource, used if theuse_external_resourceis true, not required.
- Declares the following interfaces:
-
cloudify.nodes.Tier- A marker for a future scale group. -
cloudify.nodes.Compute- A compute resource. Either a virtual or a physical host. -
cloudify.nodes.Container- A logical partition in a host such as Linux container or Docker. -
cloudify.nodes.Network- A virtual network. -
clouydify.nodes.Subnet- A virtual segment of an IP addresses in a network. -
cloudify.nodes.Router- A virtual layer 3 router. -
cloudify.nodes.Port- An entry in a virtual subnet. Can be used in some Clouds to secure a static private IP. -
cloudify.nodes.VirtualIP- A virtual IP implemented as NAT, or in another manner. -
cloudify.nodes.SecurityGroup- A Cloud security group. (VM network access rules) -
cloudify.nodes.LoadBalancer- A virtualized load balancer. -
cloudify.nodes.Volume- A persistent block storage volume. -
cloudify.nodes.FileSystem- A writable file system. This type must be used in conjunction with acloudify.nodes.Volumetype and acloudify.nodes.Computetype.- relationships: The conjunction stated above is expressed by specifying two mandatory relationships for the file system.
cloudify.relationships.file_system_depends_on_volume- Used to format and partition the file system on top of the volume. It creates a single partition occupying the entire capacity of the volume.cloudify.relationships.file_system_contained_in_compute- Used to mount and unmount the file system from the server.
- properties:
use_external_resource- Enables the use of already formatted volumes. In this case, the formatting part is skipped, and only a mount point id created. Defaults to False. (Boolean)partition_type- The partition type. Defaults to 83 which is a Linux native partition. (Integer)fs_type- The type of the File System. Supported types are:ext2,ext3,ext4,fat,ntfs,swapfs_mount_path- The path of the mount point.
- Example Usage:
volume_fs: type: cloudify.nodes.FileSystem properties: fs_type: ext4 fs_mount_path: /mount-path relationships: - type: cloudify.relationships.file_system_depends_on_volume target: volume - type: cloudify.relationships.file_system_contained_in_compute target: vm
- relationships: The conjunction stated above is expressed by specifying two mandatory relationships for the file system.
-
cloudify.nodes.ObjectStorage- A BLOB storage segment. -
cloudify.nodes.SoftwareComponent- A base type for all middleware level types. -
cloudify.nodes.WebServer- A Web server.- properties:
port- The Webserver port.
- properties:
-
cloudify.nodes.ApplicationServer- An application server. -
cloudify.nodes.DBMS- A database. -
cloudify.nodes.MessageBugServer- A message BUS server. -
cloudify.nodes.ApplicationModule- A base type for any application module or artifact. -
cloudify.nodes.Component- A base type that represents a connection to a separate deployment unit, which is a part of the application architecture and deployment lifecycle.- properties:
resource_config:blueprint:external_resource: Optional, reuse an already existing blueprint, by default False.id: This is the blueprint ID that the Component’s node is connected to.blueprint_archive: blueprint source url available from the Conductor Manager (ignored, ifexternal_resource==True).main_file_name: The application blueprint filename. If the blueprint consists of many imported files this is the main blueprint name.
deployment:id: This is the deployment ID that the Component’s node is connected to.inputs: Optional, The inputs to the deployment in the format of a dictionary.logs: This is a flag for logs and events redirect from the deployment, by default true.auto_inc_suffix: Optional, will add a suffix to the given deployment ID in the form of an auto incremented index, which is relevant in the scaling a Component node.
executions_start_args: Optional, params for executions in the format of a dictionary.
client: Studio Conductor HTTP client configuration, if empty the current Conductor Manager client will be used.host: The host name of the Conductor Manager.port: The port of the REST API service on the Conductor Manager.protocol: The protocol of the REST API service on management machine, defaults to http.api_version: The version of the Studio Conductor REST API service.headers: Headers to be added to the HTTP requests.query_params: Query parameters to be added to the HTTP request.cert: Path on the Conductor Manager to a copy of the target Conductor Manager certificate.trust_all: If False, the server’s certificate (self-signed or not) will be verified.username: Studio Conductor user username.password: Studio Conductor user password.token: Studio Conductor user token.tenant: Studio Conductor user accessible tenant name.
plugins: Optional, dictionary of plugins to upload, in which each plugin is in the format: plugin-name: wagon_path: Url for plugin wagon file, plugin_yaml_path: Url for plugin yaml filesecrets: Optional, dictionary of secrets to set before deploying Components. The format of each secret is: secret-name: value
- properties:
-
cloudify.nodes.ServiceComponent- A service which is a part of an application deployment. -
cloudify.nodes.SharedResource- A base type that represents a connection to a separate deployed unit of a resource (shared DB service, filesystem, etc), which is consumed and required by the deployment.- properties:
resource_config:deployment:id: This is the deployment ID that the SharedResource’s node is connected to.
client: Studio Conductor HTTP client configuration, if empty the current Conductor Manager client will be used.host: Host of the Conductor Manager.port: Port of REST API service on the Conductor Manager.protocol: Protocol of REST API service on management machine, defaults to http.api_version: Version of Studio Conductor REST API service.headers: Headers to be added to HTTP requests.query_params: Query parameters to be added to the HTTP request.cert: Path on the Conductor Manager to a copy of the other Conductor Manager certificate.trust_all: If False, the server’s certificate (self-signed or not) will be verified.username: Studio Conductor user username.password: Studio Conductor user password.token: Studio Conductor user token.tenant: Studio Conductor user accessible tenant name.
- properties:
