Implement bootstrapping for custom nova flavors
Previously nova just created default flavors. This patch adds ability to specify custom flavors in ~/.ccp.yaml. Also this patch renames job to more general format and moves all default flavors to defaults.yaml config. Now Jinja loop was moved to service definition yaml, which create one job per one flavor. Bootstrapping is enabled by default. Change-Id: I07daad9be8b4ccbc5a8e618351e8897af7d61672
This commit is contained in:
parent
e0c2171e8a
commit
8394a82409
@ -1,25 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
export OS_IDENTITY_API_VERSION=3
|
||||
export OS_INTERFACE="internal"
|
||||
export OS_PROJECT_DOMAIN_NAME=default
|
||||
export OS_USER_DOMAIN_NAME=default
|
||||
export OS_PASSWORD={{ openstack.user_password }}
|
||||
export OS_USERNAME={{ openstack.user_name }}
|
||||
export OS_PROJECT_NAME={{ openstack.project_name }}
|
||||
export OS_AUTH_URL="{{ address('keystone', keystone.admin_port, with_scheme=True) }}/v3"
|
||||
|
||||
function ensure_flavor {
|
||||
openstack flavor show $1 || openstack --os-region-name=RegionOne \
|
||||
flavor create --id $2 --ram $3 --disk $4 --vcpus $5 $1
|
||||
}
|
||||
|
||||
# name id ram disk vcpus
|
||||
ensure_flavor m1.test 0 128 1 1
|
||||
ensure_flavor m1.tiny 1 512 1 1
|
||||
ensure_flavor m1.small 2 2048 20 1
|
||||
ensure_flavor m1.medium 3 4096 40 2
|
||||
ensure_flavor m1.large 4 8192 80 4
|
||||
ensure_flavor m1.xlarge 5 16384 160 8
|
21
service/files/create-flavor.sh.j2
Normal file
21
service/files/create-flavor.sh.j2
Normal file
@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
name=$1
|
||||
id=$2
|
||||
ram=$3
|
||||
disk=$4
|
||||
vcpus=$5
|
||||
|
||||
set -ex
|
||||
|
||||
export OS_IDENTITY_API_VERSION=3
|
||||
export OS_INTERFACE="internal"
|
||||
export OS_PROJECT_DOMAIN_NAME=default
|
||||
export OS_USER_DOMAIN_NAME=default
|
||||
export OS_PASSWORD={{ openstack.user_password }}
|
||||
export OS_USERNAME={{ openstack.user_name }}
|
||||
export OS_PROJECT_NAME={{ openstack.project_name }}
|
||||
export OS_AUTH_URL="{{ address('keystone', keystone.admin_port, with_scheme=True) }}/v3"
|
||||
|
||||
openstack flavor show $name || openstack --os-region-name=RegionOne \
|
||||
flavor create --id $id --ram $ram --disk $disk --vcpus $vcpus $name
|
@ -176,6 +176,39 @@ configs:
|
||||
ceph:
|
||||
enable: false
|
||||
pool_name: "vms"
|
||||
bootstrap:
|
||||
enable: true
|
||||
flavors:
|
||||
- name: m1.test
|
||||
id: 0
|
||||
ram: 128
|
||||
disk: 1
|
||||
vcpus: 1
|
||||
- name: m1.tiny
|
||||
id: 1
|
||||
ram: 512
|
||||
disk: 1
|
||||
vcpus: 1
|
||||
- name: m1.small
|
||||
id: 2
|
||||
ram: 2048
|
||||
disk: 20
|
||||
vcpus: 1
|
||||
- name: m1.medium
|
||||
id: 3
|
||||
ram: 4096
|
||||
disk: 40
|
||||
vcpus: 2
|
||||
- name: m1.large
|
||||
id: 4
|
||||
ram: 8192
|
||||
disk: 80
|
||||
vcpus: 4
|
||||
- name: m1.xlarge
|
||||
id: 5
|
||||
ram: 16384
|
||||
disk: 160
|
||||
vcpus: 8
|
||||
|
||||
versions:
|
||||
novnc_version: "0.6.1"
|
||||
|
@ -97,12 +97,16 @@ service:
|
||||
command: nova-api --config-file /etc/nova/nova.conf
|
||||
files:
|
||||
- nova.conf
|
||||
# {% if nova.bootstrap.enable %}
|
||||
post:
|
||||
- name: nova-create-default-flavors
|
||||
# {% for flavor in nova.bootstrap.flavors %}
|
||||
- name: nova-bootstrap-flavor-{{ flavor.id }}
|
||||
type: single
|
||||
command: /opt/ccp/bin/create-default-flavors.sh
|
||||
command: /opt/ccp/bin/create-flavor.sh {{ flavor.name }} {{ flavor.id }} {{ flavor.ram }} {{ flavor.disk }} {{ flavor.vcpus }}
|
||||
files:
|
||||
- create-default-flavors.sh
|
||||
- create-flavor.sh
|
||||
# {% endfor %}
|
||||
# {% endif %}
|
||||
|
||||
files:
|
||||
nova.conf:
|
||||
@ -110,7 +114,7 @@ files:
|
||||
content: nova.conf.j2
|
||||
perm: "0600"
|
||||
|
||||
create-default-flavors.sh:
|
||||
path: /opt/ccp/bin/create-default-flavors.sh
|
||||
content: create-default-flavors.sh.j2
|
||||
create-flavor.sh:
|
||||
path: /opt/ccp/bin/create-flavor.sh
|
||||
content: create-flavor.sh.j2
|
||||
perm: "0700"
|
||||
|
Loading…
Reference in New Issue
Block a user