This feature deploys Heat, the OpenStack Orchestration service.
Enabling Orchestration
To enable Orchestration, run the following command:
sunbeam enable orchestration
Use OpenStack CLI to manage orchestation stacks. See the upstream Heat documentation for details.
Disabling Orchestration
To disable Orchestration, run the following command:
sunbeam disable orchestration
This will terminate the application but not remove it from the model. To do that, run the following:
juju remove-application --force --no-wait --no-prompt -m openstack \
heat heat-cfn heat-mysql-router heat-cfn-mysql-router
Usage
Create a Heat stack using the following command:
openstack stack create \
-t https://opendev.org/openstack/heat-templates/raw/branch/master/hot/servers_in_existing_neutron_net.yaml \
--parameter key_name=sunbeam \
--parameter image=ubuntu \
--parameter flavor=m1.tiny \
--parameter public_net_id=external-network \
--parameter private_net_id=demo-network \
--parameter private_subnet_id=demo-subnet \
teststack
The Heat template referred to in the above command creates two servers in network demo-subnet
and assigns them floating IP addresses.
Sample output:
+---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| id | 952770ed-f40e-4547-8f22-4dba8b1c714b |
| stack_name | teststack |
| description | HOT template to deploy two servers into an existing neutron tenant network and assign floating IP addresses to each server so they are routable from the public network. |
| | |
| creation_time | 2023-10-13T06:47:35Z |
| updated_time | None |
| stack_status | CREATE_IN_PROGRESS |
| stack_status_reason | Stack CREATE started |
+---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Verify stack status and wait for completion:
openstack stack list
Sample output:
+--------------------------------------+------------+-----------------+----------------------+--------------+
| ID | Stack Name | Stack Status | Creation Time | Updated Time |
+--------------------------------------+------------+-----------------+----------------------+--------------+
| 952770ed-f40e-4547-8f22-4dba8b1c714b | teststack | CREATE_COMPLETE | 2023-10-13T06:47:35Z | None |
+--------------------------------------+------------+-----------------+----------------------+--------------+
Get stack details using the below command:
openstack stack show teststack
Sample output:
+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| id | 952770ed-f40e-4547-8f22-4dba8b1c714b |
| stack_name | teststack |
| description | HOT template to deploy two servers into an existing neutron tenant network and assign floating IP addresses to each server so they are routable from the public network. |
| | |
| creation_time | 2023-10-13T06:47:35Z |
| updated_time | None |
| stack_status | CREATE_COMPLETE |
| stack_status_reason | Stack CREATE completed successfully |
| parameters | OS::project_id: 098db89856cb4306828b0be678667294 |
| | OS::stack_id: 952770ed-f40e-4547-8f22-4dba8b1c714b |
| | OS::stack_name: teststack |
| | flavor: m1.tiny |
| | image: ubuntu |
| | key_name: sunbeam |
| | private_net_id: demo-network |
| | private_subnet_id: demo-subnet |
| | public_net_id: external-network |
| | |
| outputs | - description: IP address of server1 in private network |
| | output_key: server1_private_ip |
| | output_value: 192.168.122.154 |
| | - description: Floating IP address of server2 in public network |
| | output_key: server2_public_ip |
| | output_value: 10.20.20.157 |
| | - description: Floating IP address of server1 in public network |
| | output_key: server1_public_ip |
| | output_value: 10.20.20.73 |
| | - description: IP address of server2 in private network |
| | output_key: server2_private_ip |
| | output_value: 192.168.122.157 |
| | |
| links | - href: http://10.20.21.13/openstack-heat/v1/098db89856cb4306828b0be678667294/stacks/teststack/952770ed-f40e-4547-8f22-4dba8b1c714b |
| | rel: self |
| | |
| deletion_time | None |
| notification_topics | [] |
| capabilities | [] |
| disable_rollback | True |
| timeout_mins | None |
| stack_owner | demo |
| parent | None |
| stack_user_project_id | 0dfde376b8544b0499e74c4d7a82cc27 |
| tags | [] |
| | |
+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Verify if stack resources are created (i.e. if new servers are launched or not):
openstack server list
+--------------------------------------+----------+--------+--------------------------------------------+--------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+----------+--------+--------------------------------------------+--------+---------+
| 0ad5e745-8d5b-4cc3-8ccf-f460733a3af4 | Server2 | ACTIVE | demo-network=10.20.20.157, 192.168.122.157 | ubuntu | m1.tiny |
| 07261def-a40b-4976-9399-0398319b4067 | Server1 | ACTIVE | demo-network=10.20.20.73, 192.168.122.154 | ubuntu | m1.tiny |
+--------------------------------------+----------+--------+--------------------------------------------+--------+---------+