X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=installers%2Fcharm%2Fprometheus-k8s%2Freactive%2Fprometheus.py;fp=installers%2Fcharm%2Fprometheus-k8s%2Freactive%2Fprometheus.py;h=0000000000000000000000000000000000000000;hb=47f8a9e1d4831437c8575d78a86ee03dbd0fe479;hp=9aa4f26e113d7511c907942bc5dc02fbaf3064de;hpb=961550439e2328d4c03d50cf83a04645abbc5175;p=osm%2Fdevops.git diff --git a/installers/charm/prometheus-k8s/reactive/prometheus.py b/installers/charm/prometheus-k8s/reactive/prometheus.py deleted file mode 100644 index 9aa4f26e..00000000 --- a/installers/charm/prometheus-k8s/reactive/prometheus.py +++ /dev/null @@ -1,107 +0,0 @@ -# Copyright 2021 Canonical Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# -# For those usages not covered by the Apache License, Version 2.0 please -# contact: legal@canonical.com -# -# To get in touch with the maintainers, please contact: -# osm-charmers@lists.launchpad.net -## - -from charms.reactive import when, when_not, hook -from charms.reactive.flags import set_flag, clear_flag -from charmhelpers.core.hookenv import ( - log, - metadata, - config, - network_get, - relation_id, -) -from charms import layer -from charmhelpers.core import hookenv -import traceback - - -@hook("upgrade-charm") -@when("leadership.is_leader") -def upgrade(): - clear_flag("prometheus-k8s.configured") - - -@when("config.changed") -@when("leadership.is_leader") -def restart(): - clear_flag("prometheus-k8s.configured") - - -@when_not("prometheus-k8s.configured") -@when("leadership.is_leader") -def configure(): - layer.status.maintenance("Configuring prometheus container") - try: - spec = make_pod_spec() - log("set pod spec:\n{}".format(spec)) - layer.caas_base.pod_spec_set(spec) - set_flag("prometheus-k8s.configured") - layer.status.active("ready") - - except Exception as e: - layer.status.blocked("k8s spec failed to deploy: {}".format(e)) - log(traceback.format_exc(), level=hookenv.ERROR) - - -@when("prometheus-k8s.configured") -def set_prometheus_active(): - layer.status.active("ready") - - -@when_not("leadership.is_leader") -def non_leaders_active(): - layer.status.active("ready") - - -@when("prometheus-k8s.configured", "endpoint.prometheus.available") -def send_config(prometheus): - layer.status.maintenance("Sending prometheus configuration") - cfg = config() - try: - info = network_get("prometheus", relation_id()) - log("network info {0}".format(info)) - host = info.get("ingress-addresses", [""])[0] - - prometheus.configure(hostname=host, port=cfg.get("advertised-port")) - clear_flag("endpoint.prometheus.available") - except Exception as e: - log("Exception sending config: {}".format(e)) - - -def make_pod_spec(): - """Make pod specification for Kubernetes - - Returns: - pod_spec: Pod specification for Kubernetes - """ - with open("reactive/spec_template.yaml") as spec_file: - pod_spec_template = spec_file.read() - - md = metadata() - cfg = config() - - data = { - "name": md.get("name"), - "docker_image": cfg.get("prometheus-image"), - "a_docker_image": cfg.get("alpine-image"), - } - data.update(cfg) - return pod_spec_template % data