Add mysql cluster to magnum deployment
Change-Id: I326a9e971ebce094670972bd7f68fac86fa2252a
This commit is contained in:
@@ -24,5 +24,6 @@ configMap:
|
|||||||
heat:
|
heat:
|
||||||
configDir: /etc/heat
|
configDir: /etc/heat
|
||||||
magnum:
|
magnum:
|
||||||
configDir: /etc/magnum
|
mysql:
|
||||||
|
size: 10Gi
|
||||||
chronyd: {}
|
chronyd: {}
|
||||||
|
@@ -16,6 +16,5 @@ data:
|
|||||||
host:
|
host:
|
||||||
api: "h-api.vexxhost.com"
|
api: "h-api.vexxhost.com"
|
||||||
api-cfn: "h-api-cfn.vexxhost.com"
|
api-cfn: "h-api-cfn.vexxhost.com"
|
||||||
magnum:
|
magnum: {}
|
||||||
configDir: /etc/magnum
|
|
||||||
chronyd: {}
|
chronyd: {}
|
||||||
|
@@ -141,7 +141,12 @@ function create_magnum_conf {
|
|||||||
iniset $MAGNUM_CONF DEFAULT transport_url "rabbit://$MAGNUM_RABBITMQ_USERNAME:$MAGNUM_RABBITMQ_PASSWORD@rabbitmq-magnum:5672/"
|
iniset $MAGNUM_CONF DEFAULT transport_url "rabbit://$MAGNUM_RABBITMQ_USERNAME:$MAGNUM_RABBITMQ_PASSWORD@rabbitmq-magnum:5672/"
|
||||||
iniset $MAGNUM_CONF DEFAULT host "$HOSTNAME"
|
iniset $MAGNUM_CONF DEFAULT host "$HOSTNAME"
|
||||||
|
|
||||||
iniset $MAGNUM_CONF database connection `database_connection_url magnum`
|
# Get mysql password
|
||||||
|
MAGNUM_DATABASE_USER=$(get_data_from_secret magnum-mysql openstack USER)
|
||||||
|
MAGNUM_DATABASE_PASSWORD=$(get_data_from_secret magnum-mysql openstack PASSWORD)
|
||||||
|
MAGNUM_DATABASE_NAME=$(get_data_from_secret magnum-mysql openstack DATABASE)
|
||||||
|
iniset $MAGNUM_CONF database connection "mysql+pymysql://$MAGNUM_DATABASE_USER:$MAGNUM_DATABASE_PASSWORD@magnum-mysql/$MAGNUM_DATABASE_NAME?charset=utf8"
|
||||||
|
|
||||||
iniset $MAGNUM_CONF api host "$MAGNUM_SERVICE_HOST"
|
iniset $MAGNUM_CONF api host "$MAGNUM_SERVICE_HOST"
|
||||||
if is_service_enabled tls-proxy; then
|
if is_service_enabled tls-proxy; then
|
||||||
iniset $MAGNUM_CONF api port "$MAGNUM_SERVICE_PORT_INT"
|
iniset $MAGNUM_CONF api port "$MAGNUM_SERVICE_PORT_INT"
|
||||||
@@ -258,17 +263,12 @@ function create_magnum_cache_dir {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# init_magnum() - Initialize databases, etc.
|
# init_magnum()
|
||||||
function init_magnum {
|
function init_magnum {
|
||||||
kubectl create secret generic magnum-config --from-file=/etc/magnum/magnum.conf --from-file=/etc/magnum/api-paste.ini -n openstack
|
kubectl create secret generic magnum-config --from-file=/etc/magnum/magnum.conf --from-file=/etc/magnum/api-paste.ini -n openstack
|
||||||
|
|
||||||
# NOTE: Permissions here are bad but it's temporary so we don't care as much.
|
# NOTE: Permissions here are bad but it's temporary so we don't care as much.
|
||||||
sudo chmod -Rv 777 /etc/magnum
|
sudo chmod -Rv 777 /etc/magnum
|
||||||
# Only do this step once on the API node for an entire cluster.
|
|
||||||
if is_service_enabled $DATABASE_BACKENDS; then
|
|
||||||
# (Re)create magnum database
|
|
||||||
recreate_database magnum
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# magnum_register_image - Register heat image for magnum with property os_distro
|
# magnum_register_image - Register heat image for magnum with property os_distro
|
||||||
|
@@ -19,6 +19,7 @@ the appropriate deployments, an instance of Memcache, RabbitMQ and a database
|
|||||||
server for the installation.
|
server for the installation.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
from openstack_operator import database
|
||||||
from openstack_operator import utils
|
from openstack_operator import utils
|
||||||
|
|
||||||
|
|
||||||
@@ -29,6 +30,21 @@ def create_or_resume(name, spec, **_):
|
|||||||
start the service up for the first time.
|
start the service up for the first time.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# deploy mysql
|
||||||
|
if "mysql" not in spec:
|
||||||
|
spec["mysql"] = {}
|
||||||
|
database.ensure_mysql_cluster("magnum", spec["mysql"])
|
||||||
|
|
||||||
|
# deploy memcached
|
||||||
|
utils.create_or_update('magnum/memcached.yml.j2', spec=spec)
|
||||||
|
|
||||||
|
# deploy rabbitmq
|
||||||
|
if not utils.ensure_secret("openstack", "magnum-rabbitmq"):
|
||||||
|
utils.create_or_update('magnum/secret-rabbitmq.yml.j2',
|
||||||
|
password=utils.generate_password())
|
||||||
|
utils.create_or_update('magnum/rabbitmq.yml.j2', spec=spec)
|
||||||
|
|
||||||
|
# deploy magnum
|
||||||
config_hash = utils.generate_hash(spec)
|
config_hash = utils.generate_hash(spec)
|
||||||
for component in ("api", "conductor"):
|
for component in ("api", "conductor"):
|
||||||
utils.create_or_update('magnum/daemonset.yml.j2',
|
utils.create_or_update('magnum/daemonset.yml.j2',
|
||||||
@@ -38,14 +54,6 @@ def create_or_resume(name, spec, **_):
|
|||||||
|
|
||||||
utils.create_or_update('magnum/service.yml.j2',
|
utils.create_or_update('magnum/service.yml.j2',
|
||||||
name=name)
|
name=name)
|
||||||
|
|
||||||
utils.create_or_update('magnum/memcached.yml.j2', spec=spec)
|
|
||||||
# deploy rabbitmq
|
|
||||||
if not utils.ensure_secret("openstack", "magnum-rabbitmq"):
|
|
||||||
utils.create_or_update('magnum/secret-rabbitmq.yml.j2',
|
|
||||||
password=utils.generate_password())
|
|
||||||
utils.create_or_update('magnum/rabbitmq.yml.j2', spec=spec)
|
|
||||||
|
|
||||||
if "ingress" in spec:
|
if "ingress" in spec:
|
||||||
utils.create_or_update('magnum/ingress.yml.j2',
|
utils.create_or_update('magnum/ingress.yml.j2',
|
||||||
name=name, spec=spec)
|
name=name, spec=spec)
|
||||||
|
Reference in New Issue
Block a user