2 # Copyright (c) 2017 GigaSpaces Technologies Ltd. All rights reserved.
4 # Licensed under the Apache License, Version 2.0 (the "License"); you may
5 # not use this file except in compliance with the License. You may obtain
6 # a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 # License for the specific language governing permissions and limitations
16 tosca_definitions_version: tosca_simple_yaml_1_0
21 cloudify-openstack-plugin:
23 openstack plugin executes operations.
31 aria.openstack.datatypes.Config:
33 openstack configuration
53 aria.openstack.datatypes.Rules:
55 openstack security group rules
64 # source: https://developer.openstack.org/api-ref/compute/
66 aria.openstack.datatypes.Server:
68 openstack Server args.
81 aria.openstack.datatypes.Keypair:
83 openstack keypair args.
95 # source: https://developer.openstack.org/api-ref/block-storage/v2/index.html
97 aria.openstack.datatypes.Volume:
99 openstack volume args.
126 # source: https://developer.openstack.org/api-ref/image/
128 aria.openstack.datatypes.Image:
130 openstack image args.
155 # source: https://developer.openstack.org/api-ref/identity/v3/
157 aria.openstack.datatypes.Project:
159 openstack image args.
180 # source: https://developer.openstack.org/api-ref/networking/v2/index.html
182 aria.openstack.datatypes.Subnet:
184 openstack subnet args.
210 aria.openstack.datatypes.Port:
236 aria.openstack.datatypes.Network:
238 openstack network args
257 aria.openstack.datatypes.SecurityGroup:
259 openstack network args
264 port_security_enabled:
287 aria.openstack.datatypes.Router:
289 openstack network args
298 aria.openstack.datatypes.FloatingIP:
300 openstack network args
311 floating_network_name:
330 aria.openstack.interfaces.validation:
331 derived_from: tosca.interfaces.Root
334 creation operation for the openstack validation interface
337 deletion operation for the openstack validation interface
342 aria.openstack.nodes.Server:
343 derived_from: tosca.nodes.Compute
347 type: aria.openstack.datatypes.Server
354 Property specifying what type of operating system family
355 this compute node will run.
358 use_external_resource:
362 a boolean for setting whether to create the resource or use an existing one.
363 See the using existing resources section.
368 If use_external_resource is ``true`` and the resource is missing,
369 create it instead of failing.
374 name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
379 The image for the server.
380 May receive either the ID or the name of the image.
381 note: This property is currently optional for backwards compatibility,
382 but will be modified to become a required property in future versions
388 The flavor for the server.
389 May receive either the ID or the name of the flavor.
390 note: This property is currently optional for backwards compatibility,
391 but will be modified to become a required property in future versions
397 A boolean describing whether this server image supports user-password authentication.
398 Images that do should post the administrator user's password to the Openstack metadata service (e.g. via cloudbase);
399 The password would then be retrieved by the plugin,
400 decrypted using the server's keypair and then saved in the server's runtime properties.
401 management_network_name:
404 The current implementation of the openstack plugin requires this field. The value of
405 this field should be set to the openstack name of a network this server is attached to.
407 type: aria.openstack.datatypes.Config
410 see Openstack Configuraion
414 implementation: cloudify-openstack-plugin > nova_plugin.server.create
419 type: aria.openstack.datatypes.Server
421 implementation: cloudify-openstack-plugin > nova_plugin.server.start
423 start_retry_interval:
430 stop: cloudify-openstack-plugin > nova_plugin.server.stop
431 delete: cloudify-openstack-plugin > nova_plugin.server.delete
433 type: aria.openstack.interfaces.validation
435 implementation: cloudify-openstack-plugin > nova_plugin.server.creation_validation
440 type: aria.openstack.datatypes.Server
444 capability: tosca.capabilities.Node
445 node: aria.openstack.nodes.FloatingIP
446 relationship: aria.openstack.server_connected_to_floating_ip
447 occurrences: [ 0, UNBOUNDED ]
449 capability: tosca.capabilities.Node
450 node: aria.openstack.nodes.SecurityGroup
451 relationship: aria.openstack.server_connected_to_security_group
452 occurrences: [ 0, UNBOUNDED ]
454 capability: tosca.capabilities.Node
455 node: aria.openstack.nodes.Port
456 relationship: aria.openstack.server_connected_to_port
457 occurrences: [ 0, UNBOUNDED ]
459 capability: tosca.capabilities.Node
460 node: aria.openstack.nodes.KeyPair
461 relationship: aria.openstack.server_connected_to_keypair
462 occurrences: [ 0, UNBOUNDED ]
467 aria.openstack.nodes.WindowsServer:
468 derived_from: aria.openstack.nodes.Server
474 Default changed for derived type
475 because Windows instances need a password for agent installation
480 (updates the os_family default as a convenience)
482 aria.openstack.nodes.KeyPair:
483 derived_from: tosca.nodes.Root
487 type: aria.openstack.datatypes.Keypair
490 the path (on the machine the plugin is running on) to
491 where the private key should be stored. If
492 use_external_resource is set to "true", the existing
493 private key is expected to be at this path.
496 the path (on the machine the plugin is running on) to
497 where the private key should be stored. If
498 use_external_resource is set to "true", the existing
499 private key is expected to be at this path.
501 use_external_resource:
505 a boolean describing whether this resource should be
506 created or rather that it already exists on Openstack
507 and should be used as-is.
512 If use_external_resource is ``true`` and the resource is missing,
513 create it instead of failing.
518 the name that will be given to the resource on Openstack (excluding optional prefix).
519 If not provided, a default name will be given instead.
520 If use_external_resource is set to "true", this exact
521 value (without any prefixes applied) will be looked for
522 as either the name or id of an existing keypair to be used.
524 type: aria.openstack.datatypes.Config
529 implementation: cloudify-openstack-plugin > nova_plugin.keypair.create
534 type: aria.openstack.datatypes.Keypair
536 delete: cloudify-openstack-plugin > nova_plugin.keypair.delete
539 type: aria.openstack.interfaces.validation
540 creation: cloudify-openstack-plugin > nova_plugin.keypair.creation_validation
544 type: tosca.capabilities.Node
546 aria.openstack.nodes.Subnet:
547 derived_from: tosca.nodes.Root
550 type: aria.openstack.datatypes.Subnet
554 use_external_resource:
558 a boolean for setting whether to create the resource or use an existing one.
559 See the using existing resources section.
564 If use_external_resource is ``true`` and the resource is missing,
565 create it instead of failing.
570 name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
572 type: aria.openstack.datatypes.Config
577 implementation: cloudify-openstack-plugin > neutron_plugin.subnet.create
581 type: aria.openstack.datatypes.Subnet
584 delete: cloudify-openstack-plugin > neutron_plugin.subnet.delete
586 type: aria.openstack.interfaces.validation
588 implementation: cloudify-openstack-plugin > neutron_plugin.subnet.creation_validation
591 type: aria.openstack.datatypes.Subnet
598 capability: tosca.capabilities.Node
599 node: aria.openstack.nodes.Router
600 relationship: aria.openstack.subnet_connected_to_router
601 occurrences: [ 0, UNBOUNDED ]
603 capability: tosca.capabilities.Node
604 node: aria.openstack.nodes.Network
607 type: tosca.capabilities.Node
609 aria.openstack.nodes.SecurityGroup:
610 derived_from: tosca.nodes.Root
613 type: aria.openstack.datatypes.SecurityGroup
620 SecurityGroup description.
625 If use_external_resource is ``true`` and the resource is missing,
626 create it instead of failing.
627 use_external_resource:
631 a boolean for setting whether to create the resource or use an existing one.
632 See the using existing resources section.
637 name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
639 type: aria.openstack.datatypes.Config
644 entry_schema: aria.openstack.datatypes.Rules
645 disable_default_egress_rules:
649 a flag for removing the default rules which https://wiki.openstack.org/wiki/Neutron/SecurityGroups#Behavior. If not set to `true`, these rules will remain, and exist alongside any additional rules passed using the `rules` property.
653 implementation: cloudify-openstack-plugin > neutron_plugin.security_group.create
656 type: aria.openstack.datatypes.SecurityGroup
659 delete: cloudify-openstack-plugin > neutron_plugin.security_group.delete
662 type: aria.openstack.interfaces.validation
663 creation: cloudify-openstack-plugin > neutron_plugin.security_group.creation_validation
667 type: tosca.capabilities.Node
669 aria.openstack.nodes.Router:
670 derived_from: tosca.nodes.Root
673 type: aria.openstack.datatypes.Router
680 An external network name or ID.
681 If given, the router will use this external network as a gateway.
682 use_external_resource:
686 a boolean for setting whether to create the resource or use an existing one.
687 See the using existing resources section.
692 If use_external_resource is ``true`` and the resource is missing,
693 create it instead of failing.
697 name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
700 type: aria.openstack.datatypes.Config
706 implementation: cloudify-openstack-plugin > neutron_plugin.router.create
710 type: aria.openstack.datatypes.Router
712 delete: cloudify-openstack-plugin > neutron_plugin.router.delete
714 type: aria.openstack.interfaces.validation
715 creation: cloudify-openstack-plugin > neutron_plugin.router.creation_validation
719 type: tosca.capabilities.Node
721 aria.openstack.nodes.Port:
722 derived_from: tosca.nodes.Root
725 type: aria.openstack.datatypes.Port
732 may be used to request a specific fixed IP for the port.
733 If the IP is unavailable
734 (either already taken or does not belong to a subnet the port is on)
735 an error will be raised.
736 use_external_resource:
740 a boolean for setting whether to create the resource or use an existing one.
741 See the using existing resources section.
746 If use_external_resource is ``true`` and the resource is missing,
747 create it instead of failing.
752 name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
754 type: aria.openstack.datatypes.Config
760 implementation: cloudify-openstack-plugin > neutron_plugin.port.create
764 type: aria.openstack.datatypes.Port
767 delete: cloudify-openstack-plugin > neutron_plugin.port.delete
770 type: aria.openstack.interfaces.validation
771 creation: cloudify-openstack-plugin > neutron_plugin.port.creation_validation
775 capability: tosca.capabilities.Node
776 node: aria.openstack.nodes.SecurityGroup
777 relationship: aria.openstack.port_connected_to_security_group
778 occurrences: [ 0, UNBOUNDED ]
780 capability: tosca.capabilities.Node
781 node: aria.openstack.nodes.FloatingIP
782 relationship: aria.openstack.port_connected_to_floating_ip
783 occurrences: [ 0, UNBOUNDED ]
785 capability: tosca.capabilities.Node
786 node: aria.openstack.nodes.Subnet
787 relationship: aria.openstack.port_connected_to_subnet
789 capability: tosca.capabilities.Node
790 node: aria.openstack.nodes.Network
791 occurrences: [ 0, UNBOUNDED ]
794 type: tosca.capabilities.Node
796 aria.openstack.nodes.Network:
797 derived_from: tosca.nodes.Root
800 type: aria.openstack.datatypes.Network
803 use_external_resource:
807 a boolean for setting whether to create the resource or use an existing one.
808 See the using existing resources section.
813 If use_external_resource is ``true`` and the resource is missing,
814 create it instead of failing.
819 name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
821 type: aria.openstack.datatypes.Config
826 implementation: cloudify-openstack-plugin > neutron_plugin.network.create
830 type: aria.openstack.datatypes.Network
833 delete: cloudify-openstack-plugin > neutron_plugin.network.delete
836 type: aria.openstack.interfaces.validation
837 creation: cloudify-openstack-plugin > neutron_plugin.network.creation_validation
841 type: tosca.capabilities.Node
843 aria.openstack.nodes.FloatingIP:
844 derived_from: tosca.nodes.Root
850 type: aria.openstack.datatypes.FloatingIP
853 use_external_resource:
857 a boolean for setting whether to create the resource or use an existing one.
858 See the using existing resources section.
863 If use_external_resource is ``true`` and the resource is missing,
864 create it instead of failing.
866 description: IP address of the floating IP
870 name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
872 type: aria.openstack.datatypes.Config
878 implementation: cloudify-openstack-plugin > neutron_plugin.floatingip.create
882 type: aria.openstack.datatypes.FloatingIP
885 delete: cloudify-openstack-plugin > neutron_plugin.floatingip.delete
888 type: aria.openstack.interfaces.validation
889 creation: cloudify-openstack-plugin > neutron_plugin.floatingip.creation_validation
893 type: tosca.capabilities.Node
895 aria.openstack.nodes.Volume:
896 derived_from: tosca.nodes.Root
900 type: aria.openstack.datatypes.Volume
902 key-value volume configuration as described in http://developer.openstack.org/api-ref-blockstorage-v1.html#volumes-v1. (**DEPRECATED - Use the `args` input in create operation instead**)
903 use_external_resource:
907 a boolean for setting whether to create the resource or use an existing one.
908 See the using existing resources section.
913 If use_external_resource is ``true`` and the resource is missing,
914 create it instead of failing.
919 name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
924 The device name this volume will be attached to.
925 Default value is *auto*,
926 which means openstack will auto-assign a device.
927 Note that if you do explicitly set a value,
928 this value may not be the actual device name assigned.
929 Sometimes the device requested will not be available and openstack will assign it to a different device,
930 this is why we recommend using *auto*.
932 type: aria.openstack.datatypes.Config
938 If a Server instance is connected to this Volume by a relationship,
939 this volume will be used as the boot volume for that Server.
943 implementation: cloudify-openstack-plugin > cinder_plugin.volume.create
947 type: aria.openstack.datatypes.Volume
952 Number of times to check for the creation's status before failing
957 Interval (in seconds) between subsequent inquiries of the creation's
961 delete: cloudify-openstack-plugin > cinder_plugin.volume.delete
964 type: aria.openstack.interfaces.validation
965 creation: cloudify-openstack-plugin > cinder_plugin.volume.creation_validation
969 capability: tosca.capabilities.Node
970 node: aria.openstack.nodes.Server
971 relationship: aria.openstack.volume_attached_to_server
973 aria.openstack.nodes.Image:
974 derived_from: tosca.nodes.Root
978 Required parameters are (container_format, disk_format). Accepted
979 types are available on
980 http://docs.openstack.org/developer/glance/formats.html
981 To create an image from the local file its path should be added
990 The openstack resource URL for the image.
991 use_external_resource:
995 a boolean for setting whether to create the resource or use an existing one.
996 See the using existing resources section.
1001 If use_external_resource is ``true`` and the resource is missing,
1002 create it instead of failing.
1007 name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
1009 type: aria.openstack.datatypes.Config
1013 create: cloudify-openstack-plugin > glance_plugin.image.create
1016 implementation: cloudify-openstack-plugin > glance_plugin.image.start
1018 start_retry_interval:
1022 delete: cloudify-openstack-plugin > glance_plugin.image.delete
1025 type: aria.openstack.interfaces.validation
1026 creation: cloudify-openstack-plugin > glance_plugin.image.creation_validation
1028 aria.openstack.nodes.Project:
1029 derived_from: tosca.nodes.Root
1033 type: aria.openstack.datatypes.Project
1035 key-value project configuration.
1039 entry_schema: string
1041 List of users assigned to this project in the following format:
1042 { name: string, roles: [string] }
1046 entry_schema: string
1048 A dictionary mapping service names to quota definitions for a proejct
1055 use_external_resource:
1059 a boolean for setting whether to create the resource or use an existing one.
1060 See the using existing resources section.
1065 If use_external_resource is ``true`` and the resource is missing,
1066 create it instead of failing.
1071 name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
1073 type: aria.openstack.datatypes.Config
1077 create: openstack.keystone_plugin.project.create
1078 start: openstack.keystone_plugin.project.start
1079 delete: openstack.keystone_plugin.project.delete
1081 type: aria.openstack.interfaces.validation
1082 creation: openstack.keystone_plugin.project.creation_validation
1087 aria.openstack.port_connected_to_security_group:
1088 derived_from: ConnectsTo
1091 add_source: cloudify-openstack-plugin > neutron_plugin.port.connect_security_group
1093 aria.openstack.subnet_connected_to_router:
1094 derived_from: ConnectsTo
1097 add_target: cloudify-openstack-plugin > neutron_plugin.router.connect_subnet
1098 remove_target: cloudify-openstack-plugin > neutron_plugin.router.disconnect_subnet
1100 aria.openstack.server_connected_to_floating_ip:
1101 derived_from: ConnectsTo
1105 implementation: cloudify-openstack-plugin > nova_plugin.server.connect_floatingip
1109 The fixed IP to be associated with the floating IP.
1110 If omitted, Openstack will choose which port to associate.
1113 remove_source: cloudify-openstack-plugin > nova_plugin.server.disconnect_floatingip
1115 aria.openstack.port_connected_to_floating_ip:
1116 derived_from: ConnectsTo
1119 add_source: cloudify-openstack-plugin > neutron_plugin.floatingip.connect_port
1120 remove_source: cloudify-openstack-plugin > neutron_plugin.floatingip.disconnect_port
1122 aria.openstack.server_connected_to_security_group:
1123 derived_from: ConnectsTo
1126 add_source: cloudify-openstack-plugin > nova_plugin.server.connect_security_group
1127 remove_source: cloudify-openstack-plugin > nova_plugin.server.disconnect_security_group
1129 aria.openstack.server_connected_to_port:
1130 derived_from: ConnectsTo
1133 remove_source: cloudify-openstack-plugin > neutron_plugin.port.detach
1135 aria.openstack.server_connected_to_keypair:
1136 derived_from: ConnectsTo
1138 aria.openstack.port_connected_to_subnet:
1139 derived_from: ConnectsTo
1141 aria.openstack.volume_attached_to_server:
1142 derived_from: ConnectsTo
1146 implementation: cloudify-openstack-plugin > nova_plugin.server.attach_volume
1151 Number of times to check for the attachment's status before failing
1156 Interval (in seconds) between subsequent inquiries of the attachment's
1161 implementation: cloudify-openstack-plugin > nova_plugin.server.detach_volume
1166 Number of times to check for the detachment's status before failing
1171 Interval (in seconds) between subsequent inquiries of the detachment's