summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/inst-w-volume/deploy-env.yaml44
-rw-r--r--examples/inst-w-volume/deploy-vm-with-volume.yaml141
-rw-r--r--examples/launch.py26
3 files changed, 210 insertions, 1 deletions
diff --git a/examples/inst-w-volume/deploy-env.yaml b/examples/inst-w-volume/deploy-env.yaml
new file mode 100644
index 0000000..7baf8a2
--- /dev/null
+++ b/examples/inst-w-volume/deploy-env.yaml
@@ -0,0 +1,44 @@
+---
+admin_user: admin
+admin_pass: ChangeMe
+admin_proj: admin
+auth_url: http://10.197.103.31:5000/
+proxy_host:
+proxy_port:
+id_api_version: 3
+
+ext_net: public1
+
+username: test_user
+pass: test_user
+proj: example-volume
+
+flavor_name: example.m1.small
+flavor_ram: 2048
+flavor_disk: 10
+flavor_cpus: 1
+
+qos_name: example_qos
+vol_type_name: example-vol-type
+vol_type_encryption_name: example_vol-type-encryption
+volume_name: example-volume
+
+image_name: example-image
+image_format: qcow2
+image_url: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
+image_file:
+image_user: cirros
+
+net_name: example-net
+subnet_name: example-subnet
+cidr: 10.0.8.0/24
+router_name: example-router
+
+kp_name: example-kp
+kp_pub_path: ~/tmp/example-kp.pub
+kp_priv_path: ~/tmp/example-kp
+
+sg_name: example-sg
+
+port_name: example-port
+inst_name: example-inst
diff --git a/examples/inst-w-volume/deploy-vm-with-volume.yaml b/examples/inst-w-volume/deploy-vm-with-volume.yaml
new file mode 100644
index 0000000..30dbcc0
--- /dev/null
+++ b/examples/inst-w-volume/deploy-vm-with-volume.yaml
@@ -0,0 +1,141 @@
+# Copyright (c) 2016 Cable Television Laboratories, Inc. ("CableLabs")
+# and others. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+openstack:
+ connections:
+ # Note - when http_proxy is set, you must also configure ssh for proxy tunneling on your host.
+ - connection:
+ name: admin-creds
+ username: {{ admin_user }}
+ project_name: {{ admin_proj }}
+ password: {{ admin_pass }}
+ auth_url: {{ auth_url }}
+ identity_api_version: {{ id_api_version }}
+ projects:
+ - project:
+ os_creds_name: admin-creds
+ name: {{ proj }}
+ description: Project for Orchestrators
+ users:
+ - {{ username }}
+ - {{ admin_user }}
+ users:
+ - user:
+ os_creds_name: admin-creds
+ name: {{ username }}
+ password: {{ pass }}
+ project_name: {{ proj }}
+ roles: {admin: {{ proj }}}
+ flavors:
+ - flavor:
+ os_creds_name: admin-creds
+ name: {{ flavor_name }}
+ ram: {{ flavor_ram }}
+ disk: {{ flavor_disk }}
+ vcpus: {{ flavor_cpus }}
+ qos_specs:
+ - qos_spec:
+ os_creds_name: admin-creds
+ name: {{ qos_name }}
+ consumer: both
+ volume_types:
+ - volume_type:
+ os_creds_name: admin-creds
+ name: {{ vol_type_name }}
+ encryption:
+ name: {{ vol_type_encryption_name }}
+ provider_class: LuksEncryptor
+ control_location: front-end
+ volumes:
+ - volume:
+ os_user:
+ name: {{ username }}
+ project_name: {{ proj }}
+ name: {{ volume_name }}
+ size: 10
+ images:
+ - image:
+ os_creds_name: admin-creds
+ name: {{ image_name }}
+ format: {{ image_format }}
+ image_user: {{ image_user }}
+ download_url: {{ image_url }}
+ image_file: {{ image_file }}
+ public: True
+ networks:
+ - network:
+ os_user:
+ name: {{ username }}
+ project_name: {{ proj }}
+ name: {{ net_name }}
+ project_name: {{ proj }}
+ subnets:
+ - subnet:
+ name: {{ subnet_name }}
+ project_name: {{ proj }}
+ cidr: {{ cidr }}
+ dns_nameservers: [8.8.8.8]
+ routers:
+ - router:
+ os_user:
+ name: {{ username }}
+ project_name: {{ proj }}
+ name: {{ router_name }}
+ external_gateway: {{ ext_net }}
+ internal_subnets:
+ - {{ subnet_name }}
+ keypairs:
+ - keypair:
+ os_user:
+ name: {{ username }}
+ project_name: {{ proj }}
+ name: {{ kp_name }}
+ public_filepath: {{ kp_pub_path }}
+ private_filepath: {{ kp_priv_path }}
+ delete_on_clean: True
+ security_groups:
+ - security_group:
+ os_user:
+ name: {{ username }}
+ project_name: {{ proj }}
+ name: {{ sg_name }}
+ rules:
+ - direction: ingress
+ protocol: icmp
+ - direction: ingress
+ protocol: tcp
+ port_range_min: 22
+ port_range_max: 22
+ instances:
+ - instance:
+ os_user:
+ name: {{ username }}
+ project_name: {{ proj }}
+ name: {{ inst_name }}
+ flavor: {{ flavor_name }}
+ imageName: {{ image_name }}
+ keypair_name: {{ kp_name }}
+ security_group_names: [{{ sg_name }}]
+ volume_names:
+ - {{ volume_name }}
+ ports:
+ - port:
+ name: {{ port_name_prfx }}-1a
+ network_name: {{ net_name }}
+ floating_ips:
+ - floating_ip:
+ name: fip1
+ port_name: {{ port_name }}
+ router_name: {{ router_name }}
diff --git a/examples/launch.py b/examples/launch.py
index 76353a2..72eccf0 100644
--- a/examples/launch.py
+++ b/examples/launch.py
@@ -33,10 +33,14 @@ from snaps.openstack.create_keypairs import KeypairSettings, OpenStackKeypair
from snaps.openstack.create_network import (
PortSettings, NetworkSettings, OpenStackNetwork)
from snaps.openstack.create_project import OpenStackProject, ProjectSettings
+from snaps.openstack.create_qos import QoSSettings, OpenStackQoS
from snaps.openstack.create_router import RouterSettings, OpenStackRouter
from snaps.openstack.create_security_group import (
OpenStackSecurityGroup, SecurityGroupSettings)
from snaps.openstack.create_user import OpenStackUser, UserSettings
+from snaps.openstack.create_volume import OpenStackVolume, VolumeSettings
+from snaps.openstack.create_volume_type import (
+ OpenStackVolumeType, VolumeTypeSettings)
from snaps.openstack.os_credentials import OSCreds, ProxySettings
from snaps.openstack.utils import deploy_utils
from snaps.provisioning import ansible_utils
@@ -126,7 +130,8 @@ def __get_os_credentials(os_conn_config):
if proxy_settings:
config['proxy_settings'] = proxy_settings
else:
- del config['proxy_settings']
+ if config.get('proxy_settings'):
+ del config['proxy_settings']
return OSCreds(**config)
@@ -632,6 +637,25 @@ def main(arguments):
os_config.get('flavors'), 'flavor', clean, users_dict)
creators.append(flavors_dict)
+ # Create QoS specs
+ qos_dict = __create_instances(
+ os_creds_dict, OpenStackQoS, QoSSettings,
+ os_config.get('qos_specs'), 'qos_spec', clean, users_dict)
+ creators.append(qos_dict)
+
+ # Create volume types
+ vol_type_dict = __create_instances(
+ os_creds_dict, OpenStackVolumeType, VolumeTypeSettings,
+ os_config.get('volume_types'), 'volume_type', clean,
+ users_dict)
+ creators.append(vol_type_dict)
+
+ # Create volume types
+ vol_dict = __create_instances(
+ os_creds_dict, OpenStackVolume, VolumeSettings,
+ os_config.get('volumes'), 'volume', clean, users_dict)
+ creators.append(vol_dict)
+
# Create images
images_dict = __create_instances(
os_creds_dict, OpenStackImage, ImageSettings,