Initial commit of TryMCP cookiecutter templates
Change-Id: I2d15c2b34e36179df395be72c231ccc1677bf7f7
diff --git a/cluster_product/openstack/cookiecutter.json b/cluster_product/openstack/cookiecutter.json
new file mode 100644
index 0000000..042cb89
--- /dev/null
+++ b/cluster_product/openstack/cookiecutter.json
@@ -0,0 +1,41 @@
+{
+ "cluster_name": "trymcp",
+ "cluster_domain": "try-mcp.local",
+ "openstack_version": "pike",
+
+ "aio_node_hostname": "aos01",
+
+ "designate_enabled": "True",
+ "tempest_enabled": "False",
+
+ "neutron_public_subnet_gateway": "192.168.130.1",
+ "neutron_public_subnet_cidr": "192.168.130.0/24",
+ "neutron_public_subnet_start": "192.168.130.10",
+ "neutron_public_subnet_end": "192.168.130.254",
+
+ "rabbitmq_admin_password": "<<WILL_BE_GENERATED>>",
+ "rabbitmq_openstack_password": "<<WILL_BE_GENERATED>>",
+ "galera_server_maintenance_password": "<<WILL_BE_GENERATED>>",
+ "galera_server_admin_password": "<<WILL_BE_GENERATED>>",
+ "keystone_admin_password": "<<WILL_BE_GENERATED>>",
+ "keystone_ceilometer_password": "<<WILL_BE_GENERATED>>",
+ "keystone_cinder_password": "<<WILL_BE_GENERATED>>",
+ "keystone_glance_password": "<<WILL_BE_GENERATED>>",
+ "keystone_heat_password": "<<WILL_BE_GENERATED>>",
+ "keystone_neutron_password": "<<WILL_BE_GENERATED>>",
+ "keystone_nova_password": "<<WILL_BE_GENERATED>>",
+ "keystone_designate_password": "<<WILL_BE_GENERATED>>",
+ "mysql_keystone_password": "<<WILL_BE_GENERATED>>",
+ "mysql_glance_password": "<<WILL_BE_GENERATED>>",
+ "mysql_nova_password": "<<WILL_BE_GENERATED>>",
+ "mysql_neutron_password": "<<WILL_BE_GENERATED>>",
+ "mysql_cinder_password": "<<WILL_BE_GENERATED>>",
+ "mysql_heat_password": "<<WILL_BE_GENERATED>>",
+ "mysql_designate_password": "<<WILL_BE_GENERATED>>",
+ "metadata_password": "<<WILL_BE_GENERATED>>",
+ "heat_domain_admin_password": "<<WILL_BE_GENERATED>>",
+ "artifactory_password": "<<WILL_BE_GENERATED>>",
+ "rabbitmq_secret_key": "<<WILL_BE_GENERATED>>",
+ "horizon_secret_key": "<<WILL_BE_GENERATED>>",
+ "keystone_service_token": "<<WILL_BE_GENERATED>>"
+}
diff --git "a/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/aio.yml" "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/aio.yml"
new file mode 100755
index 0000000..15e7f2d
--- /dev/null
+++ "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/aio.yml"
@@ -0,0 +1,45 @@
+classes:
+- system.linux.system.lowmem
+- system.linux.system.repo.mcp.openstack
+- system.linux.system.repo.mcp.extra
+- system.linux.system.repo.mcp.salt
+- system.linux.system.repo.mcp.apt_mirantis.saltstack
+- system.linux.system.single.debian
+- system.linux.storage.loopback
+- cluster.{{ cookiecutter.cluster_name }}.openstack.control
+- cluster.{{ cookiecutter.cluster_name }}.openstack.control_init
+- cluster.{{ cookiecutter.cluster_name }}.openstack.secret
+- cluster.{{ cookiecutter.cluster_name }}.openstack.proxy
+- cluster.{{ cookiecutter.cluster_name }}.openstack.dashboard
+- cluster.{{ cookiecutter.cluster_name }}.openstack.gateway
+- cluster.{{ cookiecutter.cluster_name }}.openstack.message_queue
+- cluster.{{ cookiecutter.cluster_name }}.openstack.database
+- cluster.{{ cookiecutter.cluster_name }}.openstack.database_init
+- cluster.{{ cookiecutter.cluster_name }}.openstack.networking
+- cluster.{{ cookiecutter.cluster_name }}.openstack
+parameters:
+ linux:
+ system:
+ # user and group keystone must exist before Apache state
+ user:
+ keystone:
+ enabled: true
+ name: keystone
+ home: /var/lib/keystone
+ shell: /bin/bash
+ system: true
+ uid: 301
+ gid: 301
+ group:
+ keystone:
+ enabled: true
+ name: keystone
+ system: true
+ gid: 301
+ network:
+ host:
+ aio01:
+ address: ${_param:aio01_node_address}
+ names:
+ - ${_param:aio01_node_hostname}
+ - ${_param:aio01_node_hostname}.${_param:cluster_domain}
diff --git "a/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/control.yml" "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/control.yml"
new file mode 100644
index 0000000..a9d14d2
--- /dev/null
+++ "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/control.yml"
@@ -0,0 +1,221 @@
+classes:
+- system.keystone.server.wsgi
+- system.keystone.server.single
+- system.glance.control.single
+- system.nova.control.single
+- system.neutron.control.openvswitch.single
+- system.neutron.client.service.public
+- system.heat.server.single
+- system.nova.compute.single
+- system.cinder.control.single
+- system.cinder.control.backend.lvm
+- service.cinder.volume.single
+- system.cinder.volume.backend.lvm
+{%- if cookiecutter.designate_enabled == 'True' %}
+- system.bind.server.single
+- system.designate.server.single
+- system.designate.server.backend.bind
+{%- endif %}
+{%- if cookiecutter.tempest_enabled == 'True' %}
+- service.runtest.tempest
+{%- endif %}
+- service.git.client
+- system.openssh.client.lab
+- system.salt.minion.cert.mysql.server
+- system.salt.minion.cert.proxy
+- system.memcached.server.single
+- system.auditd.server.ciscat
+- cluster.{{ cookiecutter.cluster_name }}.openstack
+parameters:
+ neutron:
+ server:
+ role: ${_param:openstack_node_role} # TODO: move this param to system.neutron.control.openvswitch.single
+ pkgs:
+ - neutron-server
+ - python-neutron-lbaas
+ - gettext-base
+ - python-pycadf
+ - neutron-plugin-ml2
+ api_workers: 2
+ rpc_state_report_workers: 2
+ rpc_workers: 2
+ message_queue:
+ ~members:
+ - host: ${_param:single_address}
+ port: ${_param:rabbitmq_port}
+ ssl:
+ enabled: ${_param:rabbitmq_ssl_enabled}
+ database:
+ ssl:
+ enabled: ${_param:galera_ssl_enabled}
+ nova:
+ compute:
+ vncproxy_url: http://${_param:single_address}:6080
+ network:
+ user: neutron
+ password: ${_param:keystone_neutron_password}
+ tenant: service
+ cache:
+ ~members:
+ - host: ${_param:single_address}
+ port: 11211
+ message_queue:
+ port: ${_param:rabbitmq_port}
+ ssl:
+ enabled: ${_param:rabbitmq_ssl_enabled}
+ # Since in AIO by default option config_drive is false,
+ # due to nova controller and compute states rewrite
+ # configs each, we must set config_drive option
+ # explicitly for runtest formula to discover the correct settings
+ config_drive:
+ forced: false
+ controller:
+ vncproxy_url: http://${_param:single_address}:6080
+ database:
+ ssl:
+ enabled: ${_param:galera_ssl_enabled}
+ message_queue:
+ port: ${_param:rabbitmq_port}
+ ssl:
+ enabled: ${_param:rabbitmq_ssl_enabled}
+ cinder:
+ controller:
+ database:
+ ssl:
+ enabled: ${_param:galera_ssl_enabled}
+ message_queue:
+ port: ${_param:rabbitmq_port}
+ ssl:
+ enabled: ${_param:rabbitmq_ssl_enabled}
+ volume:
+ cache:
+ ~members:
+ - host: ${_param:single_address}
+ port: 11211
+ database:
+ ssl:
+ enabled: ${_param:galera_ssl_enabled}
+ message_queue:
+ port: ${_param:rabbitmq_port}
+ ssl:
+ enabled: ${_param:rabbitmq_ssl_enabled}
+{%- if cookiecutter.designate_enabled == 'True' %}
+ designate:
+ server:
+ quota:
+ zones: ${_param:designate_quota_zones}
+ database:
+ ssl:
+ enabled: ${_param:galera_ssl_enabled}
+ message_queue:
+ port: ${_param:rabbitmq_port}
+ ssl:
+ enabled: ${_param:rabbitmq_ssl_enabled}
+ worker:
+ enabled: ${_param:designate_worker_enabled}
+{%- endif %}
+ glance:
+ server:
+ database:
+ ssl:
+ enabled: ${_param:galera_ssl_enabled}
+ message_queue:
+ port: ${_param:rabbitmq_port}
+ ssl:
+ enabled: ${_param:rabbitmq_ssl_enabled}
+ keystone:
+ server:
+ database:
+ ssl:
+ enabled: ${_param:galera_ssl_enabled}
+ message_queue:
+ port: ${_param:rabbitmq_port}
+ ssl:
+ enabled: ${_param:rabbitmq_ssl_enabled}
+ client:
+ enabled: true
+ server:
+ identity:
+ admin:
+ api_version: 3
+ heat:
+ server:
+ database:
+ ssl:
+ enabled: ${_param:galera_ssl_enabled}
+ message_queue:
+ port: ${_param:rabbitmq_port}
+ ssl:
+ enabled: ${_param:rabbitmq_ssl_enabled}
+{%- if cookiecutter.tempest_enabled == 'True' %}
+ runtest:
+ enabled: True
+ salttest:
+ enabled: True
+ tempest:
+ enabled: True
+ cfg_dir: ${_param:runtest_tempest_cfg_dir}
+ cfg_name: ${_param:runtest_tempest_cfg_name}
+ convert_to_uuid:
+ network:
+ public_network_id: ${_param:runtest_tempest_public_net}
+ compute:
+ build_timeout: 600
+ min_microversion: 2.1
+ max_microversion: 2.53
+ orchestration:
+ max_template_size: 5440000
+ max_resources_per_stack: 20000
+ dns_feature_enabled:
+ # Switch this to designate_admin_api_enabled once [1] is promoted to stable packages
+ # [1] https://gerrit.mcp.mirantis.net/gitweb?p=salt-formulas/designate.git;a=commit;h=96a3f43f6cf1149559e54a00b5548bdf46333749
+ api_admin: false
+ api_v1: false
+ api_v2: true
+ api_v2_quotas: true
+ api_v2_root_recordsets: true
+ bug_1573141_fixed: true
+ volume-feature-enabled:
+ backup: false
+ network:
+ floating_network_name: ${_param:runtest_tempest_public_net}
+ artifact_collector:
+ enabled: true
+ artifactory:
+ enabled: true
+ user: ${_param:artifactory_user}
+ password: ${_param:artifactory_password}
+ host: artifactory.mcp.mirantis.net
+ port: 443
+ proto: https
+ endpoint: /oscore-local/${_param:cluster_domain}/${_param:infra_config_hostname}
+ artifacts:
+ sys_logs:
+ path: /var/log
+ etc:
+ path: /etc
+ cmds:
+ service_status:
+ cmd: "(. /root/keystonercv3; openstack compute service list; openstack volume service list; openstack catalog list)"
+ dst: /tmp/openstack_service_report.txt
+{%- endif %}
+ openssh:
+ server:
+ password_auth: true
+ permit_root_login: true
+ linux:
+ system:
+ user:
+ root:
+ enabled: true
+ # r00tme
+ password: $6$9ojWyyN.$26Vj46JtCUL6C7XBQ8RmQTZLwo8/8SkqTRElXh0X2YBLrt7E/aVe2AYQ5gguYUwUknZNOSn5q7M9M3Jyf2gof/
+ repo:
+ linux_system_repo:
+ source: ${_param:linux_system_repo}
+ architectures: amd64
+ clean_file: true
+ pin:
+ - pin: ${_param:linux_system_repo_pin}
+ priority: ${_param:linux_system_repo_priority}
+ package: "*"
diff --git "a/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/control_init.yml" "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/control_init.yml"
new file mode 100644
index 0000000..0a0552f
--- /dev/null
+++ "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/control_init.yml"
@@ -0,0 +1,11 @@
+classes:
+- system.keystone.client.single
+- system.keystone.client.service.cinder3
+- system.keystone.client.service.nova21
+- system.keystone.client.service.nova-placement
+- system.keystone.client.service.designate
+parameters:
+ _param:
+ keystone_public_path: "/"
+ keystone_internal_path: "/"
+ keystone_admin_path: "/"
diff --git "a/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/dashboard.yml" "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/dashboard.yml"
new file mode 100644
index 0000000..69653bd
--- /dev/null
+++ "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/dashboard.yml"
@@ -0,0 +1,12 @@
+classes:
+- system.horizon.server.single
+parameters:
+ _param:
+ horizon_identity_host: ${_param:single_address} # doesn't work from init ?
+ horizon:
+ server:
+ secure: False
+ identity:
+ encryption: ${_param:horizon_identity_encryption}
+ api_versions:
+ identity: 3
diff --git "a/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/database.yml" "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/database.yml"
new file mode 100644
index 0000000..6877946
--- /dev/null
+++ "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/database.yml"
@@ -0,0 +1,19 @@
+classes:
+- service.galera.ssl
+- service.galera.master.cluster
+- system.galera.server.database.cinder
+- system.galera.server.database.designate
+- system.galera.server.database.glance
+- system.galera.server.database.heat
+- system.galera.server.database.keystone
+- system.galera.server.database.nova
+parameters:
+ galera:
+ master:
+ ~members:
+ - host: ${_param:single_address}
+ port: 4567
+ innodb_buffer_pool_size: 1024M
+ max_connections: 1000
+ slave:
+ enabled: false
diff --git "a/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/database_init.yml" "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/database_init.yml"
new file mode 100644
index 0000000..831c0bf
--- /dev/null
+++ "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/database_init.yml"
@@ -0,0 +1,2 @@
+classes:
+- system.mysql.client
diff --git "a/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/gateway.yml" "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/gateway.yml"
new file mode 100644
index 0000000..9487e4f
--- /dev/null
+++ "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/gateway.yml"
@@ -0,0 +1,13 @@
+classes:
+- service.neutron.gateway.single
+parameters:
+ neutron:
+ gateway:
+ metadata:
+ workers: 2
+ agent_mode: dvr_snat
+ dvr: true
+ message_queue:
+ port: ${_param:rabbitmq_port}
+ ssl:
+ enabled: ${_param:rabbitmq_ssl_enabled}
diff --git "a/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/init.yml" "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/init.yml"
new file mode 100644
index 0000000..3ceb04e
--- /dev/null
+++ "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/init.yml"
@@ -0,0 +1,84 @@
+parameters:
+ _param:
+ mysql_admin_user: root
+ mysql_cluster_role: master
+ loopback_device_size: 20
+ salt_minion_ca_host: ${linux:network:fqdn}
+
+ cluster_name: {{ cookiecutter.cluster_name }}
+ cluster_domain: {{ cookiecutter.cluster_domain }}
+ openstack_version: {{ cookiecutter.openstack_version }}
+ openstack_node_role: primary
+ aio01_node_hostname: {{ cookiecutter.aio_node_hostname }}
+ aio01_node_address: ${_param:single_address}
+
+ cluster_public_host: ${_param:single_address}
+ cluster_public_protocol: http
+ openstack_region: CustomRegion
+ admin_email: root@localhost
+ galera_server_cluster_name: openstack_cluster
+ keystone_version: ${_param:openstack_version}
+ glance_version: ${_param:openstack_version}
+ nova_version: ${_param:openstack_version}
+ neutron_version: ${_param:openstack_version}
+ cinder_version: ${_param:openstack_version}
+ heat_version: ${_param:openstack_version}
+ horizon_version: ${_param:openstack_version}
+ designate_version: ${_param:openstack_version}
+ keystone_service_host: ${_param:single_address}
+ heat_service_host: ${_param:single_address}
+ neutron_service_host: ${_param:single_address}
+ glance_service_host: ${_param:single_address}
+ cinder_service_host: ${_param:single_address}
+ designate_service_host: ${_param:single_address}
+ nova_service_host: ${_param:single_address}
+ control_address: ${_param:single_address}
+ cluster_vip_address: ${_param:single_address}
+ cluster_local_address: ${_param:single_address}
+ openstack_database_address: ${_param:single_address}
+ tenant_address: ${_param:single_address}
+ horizon_identity_encryption: none
+ horizon_identity_version: 2
+{%- if cookiecutter.designate_enabled == 'True' %}
+ designate_admin_api_enabled: true
+ designate_bind9_rndc_key: 4pc+X4PDqb2q+5o72dISm72LM1Ds9X2EYZjqg+nmsS7FhdTwzFFY8l/iEDmHxnyjkA33EQC8H+z0fLLBunoitw==
+ designate_pool_target_type: bind9
+ designate_domain_id: 5186883b-91fb-4891-bd49-e6769234a8fc
+ designate_pool_ns_records:
+ - hostname: "ns1.example.org."
+ priority: 10
+ designate_pool_nameservers:
+ - host: ${_param:single_address}
+ port: 53
+ designate_pool_target_masters:
+ - host: ${_param:single_address}
+ port: 5354
+ designate_pool_target_options:
+ host: ${_param:single_address}
+ port: 53
+ rndc_host: 127.0.0.1
+ rndc_port: 953
+ rndc_key_file: /etc/designate/rndc.key
+ designate_quota_zones: 40
+ designate_worker_enabled: true
+{%- endif %}
+ linux_system_repo: deb [arch=amd64] http://mirror.fuel-infra.org/mcp-repos/${_param:openstack_version}/xenial ${_param:openstack_version} main
+ linux_system_repo_pin: release a=${_param:openstack_version}
+ linux_system_repo_priority: 1200
+ openstack_public_neutron_subnet_gateway: {{ cookiecutter.neutron_public_subnet_gateway }}
+ openstack_public_neutron_subnet_cidr: {{ cookiecutter.neutron_public_subnet_cidr }}
+ openstack_public_neutron_subnet_allocation_start: {{ cookiecutter.neutron_public_subnet_start }}
+ openstack_public_neutron_subnet_allocation_end: {{ cookiecutter.neutron_public_subnet_end }}
+ galera_ssl_enabled: false
+ rabbitmq_ssl_enabled: false # untill rabbitmq formula with https://gerrit.mcp.mirantis.net/#/c/15198/ promoted to stable
+ rabbitmq_port: 5672 # for non-ssl use 5672/for ssl 5671
+{%- if cookiecutter.tempest_enabled == 'True' %}
+ runtest_tempest_cfg_dir: /root/rally_reports/
+ runtest_tempest_cfg_name: tempest_generated.conf
+ runtest_tempest_log_file: /home/rally/rally_reports/tempest.log
+ runtest_tempest_public_net: public
+ artifactory_user: artifactory_user
+{%- endif %}
+ openstack_log_appender: true
+ openstack_fluentd_handler_enabled: true
+ openstack_ossyslog_handler_enabled: true
diff --git "a/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/message_queue.yml" "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/message_queue.yml"
new file mode 100644
index 0000000..7f1599a
--- /dev/null
+++ "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/message_queue.yml"
@@ -0,0 +1,10 @@
+classes:
+- service.rabbitmq.server.ssl
+- system.rabbitmq.server.vhost.openstack
+- system.rabbitmq.server.single
+- system.salt.minion.cert.rabbitmq_server
+parameters:
+ rabbitmq:
+ server:
+ ssl:
+ enabled: ${_param:rabbitmq_ssl_enabled}
diff --git "a/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/networking.yml" "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/networking.yml"
new file mode 100644
index 0000000..1cca1ed
--- /dev/null
+++ "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/networking.yml"
@@ -0,0 +1,25 @@
+parameters:
+ linux:
+ network:
+ bridge: openvswitch
+ interface:
+ br-floating:
+ enabled: true
+ type: ovs_bridge
+ phy-public:
+ enabled: true
+ type: ovs_port
+ bridge: br-floating
+ proto: static
+ address: ${_param:openstack_public_neutron_subnet_gateway}
+ netmask: 255.255.255.0
+ ens4:
+ enabled: true
+ type: eth
+ proto: static
+ address: ${_param:single_address}
+ netmask: 255.255.255.0
+ ens3:
+ enabled: true
+ type: eth
+ proto: dhcp
diff --git "a/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/proxy.yml" "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/proxy.yml"
new file mode 100644
index 0000000..9157b20
--- /dev/null
+++ "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/proxy.yml"
@@ -0,0 +1,38 @@
+classes:
+- system.nginx.server.single
+parameters:
+ _param:
+ nginx_proxy_openstack_web_host: ${_param:cluster_public_host}
+ nginx_proxy_openstack_web_proxy_host: ${_param:cluster_vip_address}
+ nginx_proxy_openstack_web_buffer_size:
+ number: 4
+ size: 256
+ nginx:
+ server:
+ enabled: true
+ site:
+ nginx_proxy_openstack_web:
+ enabled: true
+ type: nginx_proxy
+ name: openstack_web
+ proxy:
+ host: localhost
+ # TODO: port must be configurable, as some deployments might have HAproxy over prx nodes
+ port: 8078
+ size: 10000m
+ timeout: 43200
+ protocol: http
+ websocket: true
+ request_buffer: false
+ buffer:
+ ${_param:nginx_proxy_openstack_web_buffer_size}
+ host:
+ name: ${_param:nginx_proxy_openstack_web_host}
+ port: 80
+ protocol: 443
+ ssl:
+ enabled: false
+ apache:
+ server:
+ bind:
+ listen_default_ports: false
diff --git "a/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/secret.yml" "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/secret.yml"
new file mode 100644
index 0000000..541fffd
--- /dev/null
+++ "b/cluster_product/openstack/\173\173 cookiecutter.cluster_name \175\175/openstack/secret.yml"
@@ -0,0 +1,27 @@
+parameters:
+ _param:
+ rabbitmq_admin_password: {{ cookiecutter.rabbitmq_admin_password }}
+ rabbitmq_openstack_password: {{ cookiecutter.rabbitmq_openstack_password }}
+ rabbitmq_secret_key: {{ cookiecutter.rabbitmq_secret_key }}
+ galera_server_maintenance_password: {{ cookiecutter.galera_server_maintenance_password }}
+ galera_server_admin_password: {{ cookiecutter.galera_server_admin_password }}
+ keystone_admin_password: {{ cookiecutter.keystone_admin_password }}
+ keystone_ceilometer_password: {{ cookiecutter.keystone_ceilometer_password }}
+ keystone_cinder_password: {{ cookiecutter.keystone_cinder_password }}
+ keystone_glance_password: {{ cookiecutter.keystone_glance_password }}
+ keystone_heat_password: {{ cookiecutter.keystone_heat_password }}
+ keystone_neutron_password: {{ cookiecutter.keystone_neutron_password }}
+ keystone_nova_password: {{ cookiecutter.keystone_nova_password }}
+ keystone_designate_password: {{ cookiecutter.keystone_designate_password }}
+ mysql_keystone_password: {{ cookiecutter.mysql_keystone_password }}
+ mysql_glance_password: {{ cookiecutter.mysql_glance_password }}
+ mysql_nova_password: {{ cookiecutter.mysql_nova_password }}
+ mysql_neutron_password: {{ cookiecutter.mysql_neutron_password }}
+ mysql_cinder_password: {{ cookiecutter.mysql_cinder_password }}
+ mysql_heat_password: {{ cookiecutter.mysql_heat_password }}
+ mysql_designate_password: {{ cookiecutter.mysql_designate_password }}
+ metadata_password: {{ cookiecutter.metadata_password }}
+ heat_domain_admin_password: {{ cookiecutter.heat_domain_admin_password }}
+ artifactory_password: {{ cookiecutter.artifactory_password }}
+ horizon_secret_key: {{ cookiecutter.horizon_secret_key }}
+ keystone_service_token: {{ cookiecutter.keystone_service_token }}
diff --git a/generate.py b/generate.py
new file mode 100755
index 0000000..7d95ecf
--- /dev/null
+++ b/generate.py
@@ -0,0 +1,46 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+from __future__ import print_function
+import argparse
+import io
+import sys
+import yaml
+
+from cookiecutter.main import cookiecutter
+
+
+def read_ctx_file(config_file):
+ with io.open(config_file, encoding='utf-8') as file_handle:
+ yaml_string = file_handle.read()
+ try:
+ yaml_dict = yaml.load(yaml_string)
+ except Exception as e:
+ msg = 'Error: Could not load config YAML file.\n%s' % e
+ print(msg, file=sys.stderr)
+ sys.exit(1)
+
+ return yaml_dict.get('default_context', {})
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--template',
+ required=True,
+ help='path to cookiecutter template')
+ parser.add_argument('--config-file',
+ help='path to YAML config file')
+ parser.add_argument('--output-dir',
+ help='path to output model')
+ args = parser.parse_args()
+ template = args.template
+ config_file = args.config_file
+ extra_context = read_ctx_file(config_file) if config_file else {}
+ output_dir = args.output_dir or '.'
+
+ cookiecutter(
+ template,
+ extra_context=extra_context,
+ output_dir=output_dir,
+ no_input=True,
+ overwrite_if_exists=True
+ )
diff --git a/workflow_definition.yml b/workflow_definition.yml
new file mode 100644
index 0000000..ee5b7f0
--- /dev/null
+++ b/workflow_definition.yml
@@ -0,0 +1,201 @@
+general_params_action:
+ - name: "base"
+ label: "Base"
+ doc: |
+ Base
+ ====
+
+ This section covers basic deployment parameters. Supported deployment type is all-in-one for OpenStack.
+
+ fields:
+ # REQUIRED BY COOKIECUTTER
+ - name: "cluster_name"
+ type: "TEXT"
+ help_text: "Name of the cluster, used as cluster/<cluster_name>/ in directory structure."
+ initial: "try-mcp"
+ - name: "cluster_domain"
+ type: "TEXT"
+ help_text: "Cluster domain"
+ initial: "try-mcp.local"
+ - name: "aio_node_hostname"
+ type: "TEXT"
+ help_text: "Hostname for OpenStack server"
+ initial: "aio01"
+ - name: "tempest_enabled"
+ type: "BOOL"
+ help_text: "Enable basic Tempest test"
+ initial: false
+ - name: "designate_enabled"
+ type: "BOOL"
+ help_text: "Enable Designate service"
+ initial: false
+ - name: "rabbitmq_openstack_password"
+ type: "TEXT"
+ help_text: "OpenStack password for RabbitMQ"
+ initial: "{{ 32|generate_password }}"
+ - name: "rabbitmq_admin_password"
+ type: "TEXT"
+ help_text: "Admin password for RabbitMQ"
+ initial: "{{ 32|generate_password }}"
+ - name: "galera_server_admin_password"
+ type: "TEXT"
+ help_text: "Galera server admin password"
+ initial: "{{ 32|generate_password }}"
+ - name: "galera_server_maintenance_password"
+ type: "TEXT"
+ help_text: "Galera server maintenance admin password"
+ initial: "{{ 32|generate_password }}"
+ - name: "keystone_admin_password"
+ type: "TEXT"
+ help_text: "Keystone admin password"
+ initial: "{{ 32|generate_password }}"
+ - name: "keystone_ceilometer_password"
+ type: "TEXT"
+ help_text: "Keystone Ceilometer password"
+ initial: "{{ 32|generate_password }}"
+ - name: "keystone_cinder_password"
+ type: "TEXT"
+ help_text: "Keystone Cinder password"
+ initial: "{{ 32|generate_password }}"
+ - name: "keystone_glance_password"
+ type: "TEXT"
+ help_text: "Keystone Glance password"
+ initial: "{{ 32|generate_password }}"
+ - name: "keystone_heat_password"
+ type: "TEXT"
+ help_text: "Keystone Heat password"
+ initial: "{{ 32|generate_password }}"
+ - name: "keystone_neutron_password"
+ type: "TEXT"
+ help_text: "Keystone Neutron password"
+ initial: "{{ 32|generate_password }}"
+ - name: "keystone_nova_password"
+ type: "TEXT"
+ help_text: "Keystone Nova password"
+ initial: "{{ 32|generate_password }}"
+ - name: "keystone_designate_password"
+ type: "TEXT"
+ help_text: "Keystone Designate password"
+ initial: "{{ 32|generate_password }}"
+ - name: "mysql_keystone_password"
+ type: "TEXT"
+ help_text: "MySQL Keystone password"
+ initial: "{{ 32|generate_password }}"
+ - name: "mysql_neutron_password"
+ type: "TEXT"
+ help_text: "MySQL Neutron password"
+ initial: "{{ 32|generate_password }}"
+ - name: "mysql_glance_password"
+ type: "TEXT"
+ help_text: "MySQL Glance password"
+ initial: "{{ 32|generate_password }}"
+ - name: "mysql_nova_password"
+ type: "TEXT"
+ help_text: "MySQL Nova password"
+ initial: "{{ 32|generate_password }}"
+ - name: "mysql_cinder_password"
+ type: "TEXT"
+ help_text: "MySQL Cinder password"
+ initial: "{{ 32|generate_password }}"
+ - name: "mysql_heat_password"
+ type: "TEXT"
+ help_text: "MySQL Heat password"
+ initial: "{{ 32|generate_password }}"
+ - name: "mysql_designate_password"
+ type: "TEXT"
+ help_text: "MySQL Designate password"
+ initial: "{{ 32|generate_password }}"
+ - name: "metadata_password"
+ type: "TEXT"
+ help_text: "Metadata password"
+ initial: "{{ 32|generate_password }}"
+ - name: "heat_domain_admin_password"
+ type: "TEXT"
+ help_text: "Heat domain admin password"
+ initial: "{{ 32|generate_password }}"
+ - name: "artifactory_password"
+ type: "TEXT"
+ help_text: "Artifactory password"
+ initial: "{{ 32|generate_password }}"
+ - name: "rabbitmq_secret_key"
+ type: "TEXT"
+ help_text: "RabbitMQ secret key"
+ initial: "{{ 32|generate_password }}"
+ - name: "horizon_secret_key"
+ type: "TEXT"
+ help_text: "Horizon secret key"
+ initial: "{{ 32|generate_password }}"
+ - name: "keystone_service_token"
+ type: "TEXT"
+ help_text: "Keystone service token"
+ initial: "{{ 32|generate_password }}"
+ # REQUIRED BY PIPELINE
+ - name: "aio_internal_address"
+ type: "IP"
+ help_text: "Internal IP address of AIO node"
+ width: "half"
+ - name: "aio_external_address"
+ type: "IP"
+ help_text: "External IP address of AIO node"
+ width: "half"
+ - name: "drivetrain_internal_address"
+ type: "IP"
+ help_text: "Internal IP address of Drivetrain node"
+ width: "half"
+ - name: "drivetrain_external_address"
+ type: "IP"
+ help_text: "External IP address of Drivetrain node"
+ width: "half"
+ # REQUIRED BY PIPELINE - HIDDEN WITH DEFAULT
+ - name: "mcp_common_scripts_repo"
+ type: "TEXT"
+ initial: "https://github.com/Mirantis/mcp-common-scripts"
+ hidden: True
+ - name: "mcp_version"
+ type: "TEXT"
+ initial: "2018.8.0"
+ hidden: True
+ - name: "shared_reclass_url"
+ type: "TEXT"
+ initial: "https://github.com/Mirantis/reclass-system-salt-model.git"
+ hidden: True
+ - name: "shared_reclass_branch"
+ type: "TEXT"
+ initial: "2018.8.0"
+ hidden: True
+ - name: "cookiecutter_template_url"
+ type: "TEXT"
+ initial: "https://github.com/lotharkatt/cookiecutter-trymcp.git"
+ hidden: true
+ - name: "cookiecutter_template_branch"
+ type: "TEXT"
+ initial: "master"
+ hidden: True
+ - name: "salt_master_hostname"
+ type: "TEXT"
+ initial: "cfg01"
+ hidden: True
+ - name: "openstack_enabled"
+ type: "BOOL"
+ initial: true
+ hidden: True
+ - name: "infra_enabled"
+ type: "BOOL"
+ initial: false
+ hidden: True
+ - name: "local_repositories"
+ type: "BOOL"
+ initial: false
+ hidden: True
+ - name: "offline_deployment"
+ type: "BOOL"
+ initial: false
+ hidden: True
+ - name: "docker_deployment"
+ type: "BOOL"
+ initial: true
+ hidden: True
+ - name: "test_model"
+ type: "BOOL"
+ initial: false
+ hidden: True