compass-core/conf/templates/chef_installer/ceph_openstack_icehouse/environments/base.tmpl

510 lines
14 KiB
Cheetah

#import simplejson as json
#import uuid
#from copy import deepcopy
## Ceph cluster config
#set fsid = str(uuid.uuid4())
#set rbd_secret_uuid = str(uuid.uuid4())
#set ceph_osd = $get_role('ceph_osd', None)
#set public_network_subnet = $ceph_osd.public_network.subnet
#set cluster_network_subnet = $ceph_osd.cluster_network.subnet
#set osd_pool_pg_num = $getVar('osd_pool_pg_num', '1024')
#set osd_pool_pgp_num = $getVar('osd_pool_pgp_num', '1024')
#set osd_pool_size = $getVar('osd_pool_size', '3')
#set journal_size = $getVar('journal_size', '10000')
#set osd_op_threads = $getVar('op_threads', 10)
#set devices = []
#if $getVar('osd_devices', None) != None
#set devices_info = $osd_devices
#set devices_num = len($devices_info)
#set devices = [x for x in range($devices_num)]
#set index = 0
#for device, config in $devices_info.iteritems()
#set temp = deepcopy($config)
#set temp["device"] = $device
#set devices[index] = $temp
#set index = $index + 1
#end for
#end if
#set devices = json.dumps($devices, encoding='utf-8')
#set radosgw = $getVar('ceph_os_radosgw', '')
#set radosgw_domain = ''
#if $radosgw != ''
#set radosgw_domain = $radosgw.hostname
#end if
## OpenStack config
## Contoller node management IP/interface
#set controller = $get_role('os_compute_controller', $get_role('os_ceph_controller', None))
#set controller_ip = $controller.management.ip
#set controller_nic = $controller.management.interface
## Compute node management IP/interface
#set compute = $get_role('os_ceph_compute_worker', None)
#set compute_nic = $compute.management.interface
## Network server/worker node IP/interface
#set network = $get_role('os_network', None)
#set network_server = $get_role('os_network_server', [$network, $controller])
#set network_worker = $get_role('os_network_worker', [$network, $compute])
#set network_server_ip = $network_server.management.ip
#set network_server_nic = $network_server.management.interface
## Network worker node management IP/interface
#set network_worker_ip = $network_worker.management.ip
#set network_worker_nic = $network_worker.management.interface
#set network_worker_public_nic = $network_worker.external.interface
#set network_worker_tenant_nic = $network_worker.tenant.interface
## Database node management IP
#set db_role = $get_role('os_ops_database', $controller)
#set db_ip = $db_role.management.ip
#set db_nic = $db_role.management.interface
## Message queue node management IP/interface
#set msg_queue = $get_role('os_ops_messaging', $controller)
#set msg_queue_ip = $msg_queue.management.ip
## Identity (keystone) node IP/interface
#set identity = $get_role('os_identity', $controller)
#set identity_ip = $identity.management.ip
#set identity_nic = $identity.management.interface
## Glance node management IP/interface
#set glance = $get_role('os_ceph_image', $controller)
#set glance_ip = $glance.management.ip
#set glance_nic = $glance.management.interface
## Cinder node management IP/interface
#set cinder = $get_role('os_ceph_block_storage_controller', $controller)
#set cinder_controller_ip = $cinder.management.ip
#set cinder_controller_nic = $cinder.management.interface
## Dashboard node management IP/interface
#set dash_role = $get_role('os_dashboard', $controller)
#set dash_ip = $dash_role.management.ip
## Set services credentials
#set db_pass = $getDictValue('service_credentials/mysql/password', 'root')
#set mq_username = $getDictValue('service_credentials/rabbitmq/username', 'guest')
#set mq_pass = $getDictValue('service_credentials/rabbitmq/password', 'guest')
## Set Openstack neutron config
#set tenant_network_type = $getDictValue('neutron_config/openvswitch/tenant_network_type', 'gre')
#set enable_tunneling = True
#set bridge_mappings = 'physnet1:br-eth1'
#if $tenant_network_type != 'gre'
#set enable_tunneling = False
#set bridge_mappings = ''
#end if
## Utility functions definition
#def get_role($role_name, $default_roles=None)
#set target_role = $getVar($role_name, None)
#if isinstance($target_role, list)
#if $target_role
#set target_role = $target_role[0]
#else
#set target_role = None
#end if
#end if
#if $target_role is None and $default_roles is not None
#if isinstance($default_roles, list)
#for $role in $default_roles
#if $role is not None
#set target_role = $role
#break
#end if
#end for
#else
#set target_role = $default_roles
#end if
#end if
#return $target_role
#end def
#def getDictValue($path, $default_value="")
#set keys = str($path).split('/')
#set value = $getVar($keys[0], {})
#if not $value
#return $default_value
#else
#for $key in $keys[1:]
#try
#set value = $value[$key]
#except
#return $default_value
#end try
#end for
#end if
#return $value
#end def
{
"name": "ceph_base_tmpl",
"description": "Environment used in testing the upstream cookbooks and reference Chef repository",
"cookbook_versions": {
},
"json_class": "Chef::Environment",
"chef_type": "environment",
"default_attributes": {
"ceph": {
"keystone environment": "openstack-ceph",
"radosgw domain": "$radosgw_domain",
"config": {
"fsid": "$fsid",
"global": {
"public network": "$public_network_subnet",
"cluster network": "$cluster_network_subnet",
"osd pool default pg num": "$osd_pool_pg_num",
"osd pool default pgp num": "$osd_pool_pgp_num",
"osd pool default size": "$osd_pool_size",
"max open files": "131072"
},
"osd": {
"osd journal size": "$journal_size",
"filestore xattr use omap": true,
"osd mkfs type": "xfs",
"osd mount options xfs": "rw,noatime,inode64,logbsize=256k,delaylog",
"osd mkfs options xfs": "-f -i size=2048",
"filestore max inline xattr size": "254",
"filestore max inline xattrs": "6",
"osd_op_threads": "$osd_op_threads",
"filestore_queue_max_ops": "500",
"filestore_queue_committing_max_ops": "5000",
"journal_max_write_entries": "1000",
"journal_queue_max_ops": "3000",
"objecter_inflight_ops": "10240",
"filestore_queue_max_bytes": "1048576000",
"filestore_queue_committing_max_bytes": "1048576000",
"journal_max_write_bytes": "1048576000",
"journal_queue_max_bytes": "1048576000",
"ms_dispatch_throttle_bytes": "1048576000",
"objecter_infilght_op_bytes": "1048576000",
"filestore_max_sync_interval": "10",
"filestore_flusher": "false",
"filestore_flush_min": "0",
"filestore_sync_flush": true
}
},
"osd_devices": $devices
},
"mysql": {
"server_root_password": "$db_pass",
"server_debian_password": "$db_pass",
"server_repl_password": "$db_pass",
"allow_remote_root": true,
"root_network_acl": "%"
},
"collectd": {
"server": {
"host": "metrics",
"port": "4242",
"protocol": "tcp"
}
},
"memcached": {
"bind_interface": "$identity_nic"
},
"openstack": {
"developer_mode": true,
"use_databags": false,
"auth": {
"validate_certs": false
},
"block-storage": {
"syslog": {
"use": false
},
"api": {
"ratelimit": "False"
},
"volume": {
"driver": "cinder.volume.drivers.rbd.RBDDriver"
},
"debug": true,
"rbd_pool": "volumes",
"rbd_secret_uuid": "$rbd_secret_uuid",
"rbd_ceph_conf": "/etc/ceph/ceph.conf",
"rbd_flatten_volume_from_snapshot": false,
"rbd_max_clone_depth": 5,
"glance_api_version": 2
},
"dashboard": {
"use_ssl": "false"
},
"compute": {
"syslog": {
"use": false
},
"libvirt": {
"bind_interface": "$compute_nic",
"images_type": "rbd",
"images_rbd_pool": "vms"
},
"novnc_proxy": {
"bind_interface": "$compute_nic"
},
"xvpvnc_proxy": {
"bind_interface": "$compute_nic"
},
"ratelimit": {
"api": {
"enabled": false
},
"volume": {
"enabled": false
}
},
"network": {
"service_type": "neutron"
}
},
"network": {
"verbose": "True",
"debug": "True",
"service_plugins": [
"router"
],
"ml2": {
"type_drivers": "$tenant_network_type",
"tenant_network_types": "$tenant_network_type",
"network_vlan_ranges": "physnet1:2700:2999",
"tunnel_id_ranges": "1:1000",
"enable_security_group": "True"
},
"openvswitch": {
"tenant_network_type": "$tenant_network_type",
"enable_tunneling": "$enable_tunneling",
"tunnel_id_ranges": "1:1000",
"network_vlan_ranges": "physnet1:2700:2999",
"bridge_mappings": "$bridge_mappings",
"bind_interface": "$network_worker_tenant_nic"
},
"l3": {
"external_network_bridge_interface": "$network_worker_public_nic"
}
},
"db": {
"bind_interface": "$db_nic",
"compute": {
"host": "$db_ip"
},
"identity": {
"host": "$db_ip"
},
"image": {
"host": "$db_ip"
},
"network": {
"host": "$db_ip"
},
"volume": {
"host": "$db_ip"
},
"dashboard": {
"host": "$db_ip"
},
"telemetry": {
"host": "$db_ip"
},
"orchestration": {
"host": "$db_ip"
}
},
"endpoints": {
"db": {
"host": "$db_ip"
},
"mq": {
"host": "$msg_queue_ip"
},
"compute-api": {
"host": "$controller_ip",
"scheme": "http",
"port": "8774",
"path": "/v2/%(tenant_id)s"
},
"compute-api-bind": {
"bind_interface": "$controller_nic"
},
"compute-ec2-admin": {
"host": "$controller_ip",
"scheme": "http",
"port": "8773",
"path": "/services/Admin"
},
"compute-ec2-api": {
"host": "$controller_ip",
"scheme": "http",
"port": "8773",
"path": "/services/Cloud"
},
"compute-novnc": {
"host": "$controller_ip",
"scheme": "http",
"port": "6080",
"path": "/vnc_auto.html"
},
"compute-novnc-bind": {
"bind_interface": "$controller_nic"
},
"compute-vnc-bind": {
"bind_interface" : "$compute_nic"
},
"vnc_bind": {
"bind_interface": "$controller_nic"
},
"image-api": {
"host": "$glance_ip",
"scheme": "http",
"port": "9292",
"path": "/v2"
},
"image-api-bind": {
"bind_interface": "$glance_nic"
},
"image-registry": {
"host": "$glance_ip",
"scheme": "http",
"port": "9191",
"path": "/v2"
},
"image-registry-bind": {
"bind_interface": "$glance_nic"
},
"identity-bind": {
"bind_interface": "$identity_nic"
},
"identity-api": {
"host": "$identity_ip",
"scheme": "http",
"port": "5000",
"path": "/v2.0"
},
"identity-admin": {
"host": "$identity_ip",
"scheme": "http",
"port": "35357",
"path": "/v2.0"
},
"block-storage-api": {
"host": "$cinder_controller_ip",
"scheme": "http",
"port": "8776",
"path": "/v1/%(tenant_id)s"
},
"block-storage-api-bind": {
"bind_interface": "$cinder_controller_nic"
},
"telemetry-api": {
"host": "$controller_ip",
"scheme": "http",
"port": "8777",
"path": "/v1"
},
"network-api": {
"host": "$network_server_ip",
"scheme": "http",
"port": "9696",
"path": ""
},
"network-api-bind": {
"bind_interface": "$network_server_nic"
},
"orchestration-api": {
"host": "$controller_ip",
"scheme": "http",
"port": "8004",
"path": "/v1/%(tenant_id)s"
},
"orchestration-api-cfn": {
"host": "$controller_ip",
"scheme": "http",
"port": "8000",
"path": "/v1"
}
},
"identity": {
"admin_user": "admin",
"bind_interface": "$identity_nic",
"catalog": {
"backend": "sql"
},
"debug": true,
"roles": [
"admin",
"member"
],
"syslog": {
"use": false
},
"tenants": [
"admin",
"service",
"demo"
],
"token": {
"backend": "sql"
},
"users": {
"admin": {
"password": "admin",
"default_tenant": "admin",
"roles": {
"admin": [
"admin"
]
}
},
"demo": {
"password": "demo",
"default_tenant": "demo",
"roles": {
"member": [
"demo"
]
}
}
}
},
"image": {
"api": {
"bind_interface": "$glance_nic",
"default_store": "rbd"
},
"debug": true,
"registry": {
"bind_interface": "$glance_nic"
},
"syslog": {
"use": false
},
"upload_image": {
"cirros": "http://download.cirros-cloud.net/0.3.2/cirros-0.3.2-x86_64-disk.img"
},
"upload_images": [
"cirros"
]
},
"mq": {
"user": "$mq_username",
"password": "$mq_pass",
"vhost": "/nova",
"network": {
"service_type": "rabbitmq"
}
}
}
}
}