Add build and installation for monasca-kibana-plugin in new API

Story: 2006376
Task: 38335

Depends-On: https://review.opendev.org/#/c/680075/

Change-Id: I5887c75dbf499027b21b86c2850370f6729fb451
This commit is contained in:
arseni.lipinski@ts.fujitsu.com 2020-01-21 18:58:12 +01:00 committed by Witek Bedyk
parent 2d8ae05899
commit aeed1c63dc
4 changed files with 93 additions and 9 deletions

View File

@ -76,6 +76,7 @@
- openstack/python-monascaclient
- openstack/tempest
- openstack/monasca-tempest-plugin
- openstack/monasca-kibana-plugin
vars:
devstack_services:
monasca-log: true

View File

@ -113,4 +113,10 @@ logging.verbose: true
# Supported languages are the following: English - en , by default , Chinese - zh-CN .
#i18n.locale: "en"
optimize.useBundleCache: False
optimize.useBundleCache: False
console.enabled: False
monasca-kibana-plugin.enabled: True
monasca-kibana-plugin.auth_uri: %KEYSTONE_AUTH_URI%
monasca-kibana-plugin.elasticsearch.url: "http://%ES_SERVICE_BIND_HOST%:%ES_SERVICE_BIND_PORT%"
monasca-kibana-plugin.cookie.isSecure: False

View File

@ -36,6 +36,8 @@ ELASTICSEARCH_DATA_DIR=$DATA_DIR/elasticsearch
KIBANA_DIR=$DEST/kibana
KIBANA_CFG_DIR=$KIBANA_DIR/config
KIBANA_DEV_DIR=$DEST/kibana_dev
KIBANA_DEV_NODE_JS_VERSION=${KIBANA_DEV_NODE_JS_VERSION:-"10.15.2"}
LOGSTASH_DIR=$DEST/logstash
LOGSTASH_DATA_DIR=$DEST/logstash-data
@ -86,6 +88,9 @@ function pre_install_logs_services {
}
function install_monasca_log {
configure_nvm
configure_yarn
build_kibana_plugin
install_log_agent
if $USE_OLD_LOG_API = true; then
install_old_log_api
@ -113,6 +118,7 @@ function configure_monasca_log {
configure_kafka
configure_elasticsearch
configure_kibana
install_kibana_plugin
if $USE_OLD_LOG_API = true; then
configure_old_monasca_log_api
fi
@ -263,7 +269,6 @@ function start_monasca_log {
start_monasca_log_api
fi
start_monasca_log_agent
create_default_index_pattern
}
function clean_monasca_log {
@ -275,6 +280,8 @@ function clean_monasca_log {
clean_elasticsearch
clean_logstash
clean_nodejs
clean_nvm
clean_yarn
clean_gate_config_holder
}
###############################################################################
@ -447,14 +454,76 @@ function start_kibana {
fi
}
function create_default_index_pattern {
local tenant_id
tenant_id=`get_or_create_project "mini-mon"`
local index_pattern="logs-$tenant_id*"
function configure_nvm {
if is_service_enabled kibana; then
echo_summary "Configuring NVM"
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
source ~/.nvm/nvm.sh
nvm install $KIBANA_DEV_NODE_JS_VERSION
nvm use $KIBANA_DEV_NODE_JS_VERSION
fi
}
curl -XPOST "$KIBANA_SERVICE_HOST:$KIBANA_SERVICE_PORT/api/saved_objects/index-pattern/$index_pattern" \
-H 'kbn-xsrf: true' -H "Content-Type: application/json" -d '{"attributes":{"title":"'$index_pattern'", "timeFieldName": "@timestamp"}}'
curl -X GET "$KIBANA_SERVICE_HOST:$KIBANA_SERVICE_PORT/api/saved_objects/index-pattern/$index_pattern" -H 'kbn-xsrf: true'
function configure_yarn {
if is_service_enabled kibana; then
echo_summary "Configuring Yarn"
REPOS_UPDATED=False
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | \
sudo tee /etc/apt/sources.list.d/yarn.list
apt_get_update
apt_get install yarn
fi
}
function clean_nvm {
if is_service_enabled kibana; then
echo_summary "Cleaning NVM"
rm -rf ~/.nvm
rm -rf ~/.bower
fi
}
function clean_yarn {
if is_service_enabled kibana; then
echo_summary "Cleaning Yarn"
apt_get purge yarn
fi
}
function build_kibana_plugin {
if is_service_enabled kibana; then
echo "Building Kibana plugin"
echo_summary "Cloning and initializing Kibana development environment"
git clone $KIBANA_DEV_REPO $KIBANA_DEV_DIR --branch $KIBANA_DEV_BRANCH --depth 1
git_clone $MONASCA_KIBANA_PLUGIN_REPO $MONASCA_KIBANA_PLUGIN_DIR $MONASCA_KIBANA_PLUGIN_BRANCH
cp -r $MONASCA_KIBANA_PLUGIN_DIR "$KIBANA_DEV_DIR/plugins"
local plugin_dir="$KIBANA_DEV_DIR/plugins/monasca-kibana-plugin"
yarn --cwd $KIBANA_DEV_DIR kbn bootstrap
yarn --cwd $plugin_dir build
local get_version_script="import json; obj = json.load(open('$plugin_dir/package.json')); print obj['version']"
local monasca_kibana_plugin_version
monasca_kibana_plugin_version=$(python -c "$get_version_script")
local pkg="$plugin_dir/build/monasca-kibana-plugin-$monasca_kibana_plugin_version.zip"
local easyPkg=$DEST/monasca-kibana-plugin.zip
ln $pkg $easyPkg
rm -rf $KIBANA_DEV_DIR
fi
}
function install_kibana_plugin {
if is_service_enabled kibana; then
echo_summary "Install Kibana plugin"
# note(trebskit) that needs to happen after kibana received
# its configuration otherwise the plugin fails to be installed
local pkg=file://$DEST/monasca-kibana-plugin.zip
$KIBANA_DIR/bin/kibana-plugin install $pkg
fi
}
function configure_monasca_log_persister {

View File

@ -127,6 +127,14 @@ LOGSTASH_VERSION=${LOGSTASH_VERSION:-7.3.0}
ELASTICSEARCH_VERSION=${ELASTICSEARCH_VERSION:-7.3.0}
LOGSTASH_OUTPUT_MONASCA_VERSION=${LOGSTASH_OUTPUT_MONASCA_VERSION:-2.0.0}
# Needed for plugin build environment initialization
KIBANA_DEV_BRANCH=${KIBANA_DEV_BRANCH:-7.3}
KIBANA_DEV_REPO="https://github.com/elastic/kibana"
MONASCA_KIBANA_PLUGIN_REPO=${MONASCA_KIBANA_PLUGIN_REPO:-${GIT_BASE}/openstack/monasca-kibana-plugin.git}
MONASCA_KIBANA_PLUGIN_BRANCH=${MONASCA_KIBANA_PLUGIN_BRANCH:-master}
MONASCA_KIBANA_PLUGIN_DIR=${DEST}/monasca-kibana-plugin
# Path settings
MONASCA_BASE=${DEST}
MONASCA_SCHEMA_DIR=${DEST}/monasca/schema