<commit_before>===========
Heat Basics
===========

Prerequisites
=============

This part of the tutorial requires a predefined network, subnet, and a publicly 
accessible machine connected to the previously mentioned network. All of the 
deployments in this part of the tutorial will deploy instances connected to 
that private network and we will utilize the publicly accessible machine as a 
jump host to the other instances. 

Setup
=====

The reader can either choose to deploy their own prerequisite 
resources or they can use the setup.yaml stack template to automatically do so. 
By default the setup definition expects a keypair named heat_key to be 
available on this tenant and it also expects the public network id to be 
supplied as input to the stack create command. The setup file can be deployed 
as follows: 

.. code:: bash

  $ openstack stack create -t setup.1.yaml --parameter public_network_id=$PUBLIC_NETOWRK_ID setup

You can now monitor the stack status with:
  
.. code:: bash

  $ openstack stack list 

When the stack status reaches *CREATE_COMPLETE*, run the following command to 
determine the floating IP for the *jumphost*:

.. code:: bash

  $ openstack stack output show setup ipaddr

Lastly, check if you can ssh into the instance and if so use scp to put the 
heat_key private key onto that server as we'll need it to log in to other 
instances we'll be deploying throughout this part of the tutorial. 

Training Templates
==================

ex1.1.yaml
---------------
  
This template aims to introduce the basic syntax for a HOT template in its most 
simple form. This is a single instance deployment with hard coded values for 
every attribute and does not use any intrinsic functions. 

**Notes**

This template contains three template sections as described below: 
<commit_msg>Update README.rst<commit_after>===========
Heat Basics
===========

Prerequisites
=============

This part of the tutorial requires a predefined network, subnet, and a publicly 
accessible machine connected to the previously mentioned network. All of the 
deployments in this part of the tutorial will deploy instances connected to 
that private network and we will utilize the publicly accessible machine as a 
jump host to the other instances. 

Setup
=====

The reader can either choose to deploy their own prerequisite 
resources or they can use the setup.yaml stack template to automatically do so. 
By default the setup definition expects a keypair named heat_key to be 
available on this tenant and it also expects the public network id to be 
supplied as input to the stack create command. The setup file can be deployed 
as follows: 

.. code:: bash

  $ openstack stack create -t setup.1.yaml --parameter public_network_id=$PUBLIC_NETOWRK_ID setup

You can now monitor the stack status with:
  
.. code:: bash

  $ openstack stack list 

When the stack status reaches *CREATE_COMPLETE*, run the following command to 
determine the floating IP for the *jumphost*:

.. code:: bash

  $ openstack stack output show setup jumphost_ip

Lastly, check if you can ssh into the instance and if so use scp to put the 
heat_key private key onto that server as we'll need it to log in to other 
instances we'll be deploying throughout this part of the tutorial. 

Training Templates
==================

ex1.1.yaml
---------------
  
This template aims to introduce the basic syntax for a HOT template in its most 
simple form. This is a single instance deployment with hard coded values for 
every attribute and does not use any intrinsic functions. 

**Notes**

This template contains three template sections as described below: 

{'fraction_non_alphanumeric': 0.06933406412715813, 'fraction_numerical': 0.001644286105782406, 'mean_word_length': 4.0344827586206895, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7272636', 'n_tokens_mistral': 953, 'n_tokens_neox': 879, 'n_words': 533}