Add classes for Ironic

Change-Id: Ia265bea6ee95435e25110d85d1c8e0eef7c11a3b
diff --git a/ironic/apache.yml b/ironic/apache.yml
new file mode 100644
index 0000000..c2c4932
--- /dev/null
+++ b/ironic/apache.yml
@@ -0,0 +1,20 @@
+#include:
+#  - service.ironic.conductor.single
+applications:
+  - apache
+parameters:
+  apache:
+    server:
+      enabled: true
+      bind:
+        address: '0.0.0.0'
+        ports:
+          - 80
+      site:
+        ironic:
+          name: 'ironic'
+          enabled: true
+          type: 'static'
+          root: '/var/www/httproot'
+          host:
+            name: ${linux:system:name}.${linux:system:domain}
diff --git a/ironic/api/cluster.yml b/ironic/api/cluster.yml
new file mode 100644
index 0000000..de73318
--- /dev/null
+++ b/ironic/api/cluster.yml
@@ -0,0 +1,12 @@
+classes:
+- service.ironic.api.single
+- system.ironic.common
+parameters:
+  ironic:
+    transport_url: rabbit://openstack:${_param:rabbitmq_openstack_password}@${_param:openstack_message_queue_node01_address}:5672,openstack:${_param:rabbitmq_openstack_password}@${_param:openstack_message_queue_node01_address}:5672,openstack:${_param:rabbitmq_openstack_password}@${_param:openstack_message_queue_node03_address}:5672//openstack
+    api:
+      bind:
+        address: ${_param:cluster_local_address}
+    identity:
+      host: ${_param:cluster_vip_address}
+
diff --git a/ironic/api/single.yml b/ironic/api/single.yml
new file mode 100644
index 0000000..4221f74
--- /dev/null
+++ b/ironic/api/single.yml
@@ -0,0 +1,8 @@
+classes:
+- service.ironic.api.single
+- system.ironic.common
+parameters:
+  ironic:
+    api:
+      bind:
+        address: '0.0.0.0'
diff --git a/ironic/common.yml b/ironic/common.yml
new file mode 100644
index 0000000..ebe4cbf
--- /dev/null
+++ b/ironic/common.yml
@@ -0,0 +1,26 @@
+applications:
+  - ironic
+parameters:
+  ironic:
+    version: ${_param:ironic_version}
+    transport_url: rabbit://openstack:${_param:rabbitmq_openstack_password}@${_param:single_address}:5672//openstack
+    database:
+      engine: mysql
+      host: ${_param:openstack_database_address}
+      port: 3306
+      name: ironic
+      user: ironic
+      password: ${_param:mysql_ironic_password}
+    identity:
+      engine: keystone
+      region: ${_param:openstack_region}
+      host: ${_param:single_address}
+      port: 35357
+      protocol: http
+      user: ironic
+      username: ${ironic:identity:user}
+      password: ${_param:keystone_ironic_password}
+      tenant: service
+      auth_type: password
+      user_domain_id: default
+      project_domain_id: default
diff --git a/ironic/conductor/cluster.yml b/ironic/conductor/cluster.yml
new file mode 100644
index 0000000..0b16953
--- /dev/null
+++ b/ironic/conductor/cluster.yml
@@ -0,0 +1,10 @@
+classes:
+- service.ironic.conductor.single
+- system.ironic.common
+parameters:
+  _param:
+    ironic_baremetal_address: ${_param:cluster_local_address}
+  ironic:
+    deploy:
+      http_url: 'http://${_param:ironic_baremetal_address}'
+    transport_url: rabbit://openstack:${_param:rabbitmq_openstack_password}@${_param:openstack_message_queue_node01_address}:5672,openstack:${_param:rabbitmq_openstack_password}@${_param:openstack_message_queue_node01_address}:5672,openstack:${_param:rabbitmq_openstack_password}@${_param:openstack_message_queue_node03_address}:5672//openstack
diff --git a/ironic/conductor/single.yml b/ironic/conductor/single.yml
new file mode 100644
index 0000000..a464378
--- /dev/null
+++ b/ironic/conductor/single.yml
@@ -0,0 +1,9 @@
+classes:
+- service.ironic.conductor.single
+- system.ironic.common
+parameters:
+  _param:
+    ironic_baremetal_address: ${_param:single_address}
+  ironic:
+    deploy:
+      http_url: 'http://${_param:ironic_baremetal_address}'
diff --git a/ironic/database_mysql.yml b/ironic/database_mysql.yml
new file mode 100644
index 0000000..1859503
--- /dev/null
+++ b/ironic/database_mysql.yml
@@ -0,0 +1,11 @@
+ironic:
+  encoding: utf8
+  users:
+  - name: ironic
+    password: ${_param:mysql_ironic_password}
+    host: '%'
+    rights: all
+  - name: ironic
+    password: ${_param:mysql_ironic_password}
+    host: ${_param:cluster_local_address}
+    rights: all
diff --git a/ironic/tftpd_hpa.yml b/ironic/tftpd_hpa.yml
new file mode 100644
index 0000000..70e3760
--- /dev/null
+++ b/ironic/tftpd_hpa.yml
@@ -0,0 +1,16 @@
+include:
+  - service.ironic.conductor.single
+applications:
+  - tftpd_hpa
+parameters:
+  tftpd_hpa:
+    server:
+      enabled: true
+      bind:
+        address: '0.0.0.0'
+        port: 69
+      username: 'ironic'
+      path: ${ironic:tftp:root}
+      options:
+       - secure
+       - map-file: '${ironic:tftp:root}/map-file'