Add support for Elasticsearch to devstack plugin
This adds support for the elasticsearch v2 storage driver to the devstack plugin. Two non-voting check jobs running a the tempest test suite against a devstack deployment using the elasticsearch driver have also been added. Story: 2006332 Task: 36078 Task: 36080 Change-Id: Ib531f83e2c8e5c2494b36af250d7630e32f49f40
This commit is contained in:
parent
15f6118ece
commit
d252f59b6e
25
.zuul.yaml
25
.zuul.yaml
@ -76,6 +76,27 @@
|
|||||||
DEVSTACK_GATE_USE_PYTHON3: "True"
|
DEVSTACK_GATE_USE_PYTHON3: "True"
|
||||||
USE_PYTHON3: "True"
|
USE_PYTHON3: "True"
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: cloudkitty-tempest-full-v2-storage-elasticsearch
|
||||||
|
parent: cloudkitty-tempest-full-v2-storage-influxdb
|
||||||
|
description: |
|
||||||
|
Job testing cloudkitty installation on devstack with python 2 and the
|
||||||
|
elasticsearch v2 storage driver and running tempest tests
|
||||||
|
vars:
|
||||||
|
devstack_localrc:
|
||||||
|
CLOUDKITTY_STORAGE_BACKEND: elasticsearch
|
||||||
|
CLOUDKITTY_STORAGE_VERSION: 2
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: cloudkitty-tempest-full-v2-storage-elasticsearch-py3
|
||||||
|
parent: cloudkitty-tempest-full-v2-storage-elasticsearch
|
||||||
|
description: |
|
||||||
|
Job testing cloudkitty installation on devstack with python 3 and the
|
||||||
|
elasticsearch v2 storage driver and running tempest tests
|
||||||
|
vars:
|
||||||
|
devstack_localrc:
|
||||||
|
DEVSTACK_GATE_USE_PYTHON3: "True"
|
||||||
|
USE_PYTHON3: "True"
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: cloudkitty-tox-bandit
|
name: cloudkitty-tox-bandit
|
||||||
@ -113,6 +134,10 @@
|
|||||||
jobs:
|
jobs:
|
||||||
- cloudkitty-tempest-full-v2-storage-influxdb
|
- cloudkitty-tempest-full-v2-storage-influxdb
|
||||||
- cloudkitty-tempest-full-v2-storage-influxdb-py3
|
- cloudkitty-tempest-full-v2-storage-influxdb-py3
|
||||||
|
- cloudkitty-tempest-full-v2-storage-elasticsearch:
|
||||||
|
voting: false
|
||||||
|
- cloudkitty-tempest-full-v2-storage-elasticsearch-py3:
|
||||||
|
voting: false
|
||||||
- cloudkitty-tempest-full-v1-storage-sqlalchemy
|
- cloudkitty-tempest-full-v1-storage-sqlalchemy
|
||||||
- cloudkitty-tempest-full-v1-storage-sqlalchemy-py3
|
- cloudkitty-tempest-full-v1-storage-sqlalchemy-py3
|
||||||
- cloudkitty-tempest-full-ipv6-only
|
- cloudkitty-tempest-full-ipv6-only
|
||||||
|
@ -173,6 +173,11 @@ function configure_cloudkitty {
|
|||||||
iniset $CLOUDKITTY_CONF storage_${CLOUDKITTY_STORAGE_BACKEND} port ${CLOUDKITTY_INFLUXDB_PORT}
|
iniset $CLOUDKITTY_CONF storage_${CLOUDKITTY_STORAGE_BACKEND} port ${CLOUDKITTY_INFLUXDB_PORT}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$CLOUDKITTY_STORAGE_BACKEND" == "elasticsearch" ]; then
|
||||||
|
iniset $CLOUDKITTY_CONF storage_${CLOUDKITTY_STORAGE_BACKEND} host ${CLOUDKITTY_ELASTICSEARCH_HOST}
|
||||||
|
iniset $CLOUDKITTY_CONF storage_${CLOUDKITTY_STORAGE_BACKEND} index_name ${CLOUDKITTY_ELASTICSEARCH_INDEX}
|
||||||
|
fi
|
||||||
|
|
||||||
# collect
|
# collect
|
||||||
iniset $CLOUDKITTY_CONF collect collector $CLOUDKITTY_COLLECTOR
|
iniset $CLOUDKITTY_CONF collect collector $CLOUDKITTY_COLLECTOR
|
||||||
iniset $CLOUDKITTY_CONF "collector_${CLOUDKITTY_COLLECTOR}" auth_section authinfos
|
iniset $CLOUDKITTY_CONF "collector_${CLOUDKITTY_COLLECTOR}" auth_section authinfos
|
||||||
@ -237,6 +242,12 @@ function create_influxdb_database {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function create_elasticsearch_index {
|
||||||
|
if [ "$CLOUDKITTY_STORAGE_BACKEND" == "elasticsearch" ]; then
|
||||||
|
curl -XPUT "${CLOUDKITTY_ELASTICSEARCH_HOST}/${CLOUDKITTY_ELASTICSEARCH_INDEX}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# init_cloudkitty() - Initialize CloudKitty database
|
# init_cloudkitty() - Initialize CloudKitty database
|
||||||
function init_cloudkitty {
|
function init_cloudkitty {
|
||||||
# Delete existing cache
|
# Delete existing cache
|
||||||
@ -253,6 +264,7 @@ function init_cloudkitty {
|
|||||||
recreate_database cloudkitty utf8
|
recreate_database cloudkitty utf8
|
||||||
|
|
||||||
create_influxdb_database
|
create_influxdb_database
|
||||||
|
create_elasticsearch_index
|
||||||
|
|
||||||
# Migrate cloudkitty database
|
# Migrate cloudkitty database
|
||||||
$CLOUDKITTY_BIN_DIR/cloudkitty-dbsync upgrade
|
$CLOUDKITTY_BIN_DIR/cloudkitty-dbsync upgrade
|
||||||
@ -289,6 +301,29 @@ function install_influx {
|
|||||||
sudo systemctl start influxdb || sudo systemctl restart influxdb
|
sudo systemctl start influxdb || sudo systemctl restart influxdb
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function install_elasticsearch_ubuntu {
|
||||||
|
sudo apt install -qy openjdk-8-jre
|
||||||
|
local elasticsearch_file=$(get_extra_file https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.3.deb)
|
||||||
|
sudo dpkg -i --skip-same-version ${elasticsearch_file}
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_elasticsearch_fedora {
|
||||||
|
sudo yum install -y java-1.8.0-openjdk
|
||||||
|
local elasticsearch_file=$(get_extra_file https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.3.rpm)
|
||||||
|
sudo yum localinstall -y ${elasticsearch_file}
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_elasticsearch {
|
||||||
|
if is_ubuntu; then
|
||||||
|
install_elasticsearch_ubuntu
|
||||||
|
elif is_fedora; then
|
||||||
|
install_elasticsearch_fedora
|
||||||
|
else
|
||||||
|
die $LINENO "Distribution must be Debian or Fedora-based"
|
||||||
|
fi
|
||||||
|
sudo systemctl start elasticsearch || sudo systemctl restart elasticsearch
|
||||||
|
}
|
||||||
|
|
||||||
# install_cloudkitty() - Collect source and prepare
|
# install_cloudkitty() - Collect source and prepare
|
||||||
function install_cloudkitty {
|
function install_cloudkitty {
|
||||||
git_clone $CLOUDKITTY_REPO $CLOUDKITTY_DIR $CLOUDKITTY_BRANCH
|
git_clone $CLOUDKITTY_REPO $CLOUDKITTY_DIR $CLOUDKITTY_BRANCH
|
||||||
@ -296,6 +331,8 @@ function install_cloudkitty {
|
|||||||
|
|
||||||
if [ $CLOUDKITTY_STORAGE_BACKEND == 'influxdb' ]; then
|
if [ $CLOUDKITTY_STORAGE_BACKEND == 'influxdb' ]; then
|
||||||
install_influx
|
install_influx
|
||||||
|
elif [ $CLOUDKITTY_STORAGE_BACKEND == 'elasticsearch' ]; then
|
||||||
|
install_elasticsearch
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,3 +72,7 @@ CLOUDKITTY_INFLUXDB_PASSWORD=${CLOUDKITTY_INFLUXDB_PASSWORD:-cloudkitty}
|
|||||||
CLOUDKITTY_INFLUXDB_HOST=${CLOUDKITTY_INFLUXDB_HOST:-"localhost"}
|
CLOUDKITTY_INFLUXDB_HOST=${CLOUDKITTY_INFLUXDB_HOST:-"localhost"}
|
||||||
CLOUDKITTY_INFLUXDB_PORT=${CLOUDKITTY_INFLUXDB_PORT:-"8086"}
|
CLOUDKITTY_INFLUXDB_PORT=${CLOUDKITTY_INFLUXDB_PORT:-"8086"}
|
||||||
CLOUDKITTY_INFLUXDB_DATABASE=${CLOUDKITTY_INFLUXDB_DATABASE:-"cloudkitty"}
|
CLOUDKITTY_INFLUXDB_DATABASE=${CLOUDKITTY_INFLUXDB_DATABASE:-"cloudkitty"}
|
||||||
|
|
||||||
|
# Set elasticsearch info
|
||||||
|
CLOUDKITTY_ELASTICSEARCH_HOST=${CLOUDKITTY_ELASTICSEARCH_HOST:-"http://localhost:9200"}
|
||||||
|
CLOUDKITTY_ELASTICSEARCH_INDEX=${CLOUDKITTY_ELASTICSEARCH_INDEX:-"cloudkitty"}
|
||||||
|
Loading…
Reference in New Issue
Block a user