From cae0afcb16b7095d024947921968f03fecdf05d8 Mon Sep 17 00:00:00 2001 From: Jaromir Wysoglad Date: Mon, 23 Jun 2025 05:40:40 -0400 Subject: [PATCH] Allow installing observabilityclient from git The python-observabilityclient is the client for interacting with prometheus from CLI and from services. Allow to install it from git as part of this devstack plugin. Change-Id: I4de463e7f188d1aa68e4d4e73e0a0b1090d56683 --- devstack/lib/observabilityclient | 18 ++++++++++++++++++ devstack/plugin.sh | 3 +++ devstack/settings | 5 +++++ 3 files changed, 26 insertions(+) create mode 100644 devstack/lib/observabilityclient diff --git a/devstack/lib/observabilityclient b/devstack/lib/observabilityclient new file mode 100644 index 0000000..b4ca871 --- /dev/null +++ b/devstack/lib/observabilityclient @@ -0,0 +1,18 @@ +# lib/observabilityclient +# Functions to control the installation of observabilityclient + +# Save trace setting +_XTRACE_PROMETHEUS=$(set +o | grep xtrace) +set +o xtrace + +function install_observabilityclient { + if use_library_from_git "python-observabilityclient"; then + git_clone_by_name "python-observabilityclient" + setup_dev_lib "python-observabilityclient" + else + pip_install_gr python-observabilityclient + fi +} + +# Restore xtrace +$_XTRACE_PROMETHEUS diff --git a/devstack/plugin.sh b/devstack/plugin.sh index ca13731..923316e 100644 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -8,6 +8,7 @@ echo_summary "devstack-plugin-prometheus's plugin.sh was called..." . $DEST/devstack-plugin-prometheus/devstack/lib/prometheus . $DEST/devstack-plugin-prometheus/devstack/lib/node_exporter . $DEST/devstack-plugin-prometheus/devstack/lib/podman_exporter +. $DEST/devstack-plugin-prometheus/devstack/lib/observabilityclient # Show all of defined environment variables (set -o posix; set) @@ -23,6 +24,8 @@ if is_service_enabled prometheus; then # Perform installation of service source echo_summary "Installing prometheus" install_prometheus + echo_summary "Installing python-observabilityclient" + install_observabilityclient elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then # Configure after the other layer 1 and 2 services have been configured diff --git a/devstack/settings b/devstack/settings index ef702b2..209642a 100644 --- a/devstack/settings +++ b/devstack/settings @@ -13,3 +13,8 @@ PROMETHEUS_CONFIG_FILE=${PROMETHEUS_CONFIG_FILE:-${PROMETHEUS_DEVSTACK_DIR}/prom NODE_EXPORTER_VERSION=1.8.2 # List of "," excluded collector names NODE_EXPORTER_COLLECTOR_EXCLUDE=${NODE_EXPORTER_COLLECTOR_EXCLUDE:-""} + +## Variables related to the observabilityclient +GITREPO["python-observabilityclient"]=${OBSERVABILITYCLIENT_REPO:-${GIT_BASE}/openstack/python-observabilityclient.git} +GITBRANCH["python-observabilityclient"]=${OBSERVABILITYCLIENT_BRANCH:-$TARGET_BRANCH} +GITDIR["python-observabilityclient"]=$DEST/python-observabilityclient