Add image_username and image_password to charms
[osm/devops.git] / installers / charm / ro-k8s / reactive / ro.py
index afd7f45..8f91b4b 100644 (file)
@@ -34,6 +34,7 @@ def restart():
 
 @when_not("mysql.available")
 @when_not("ro-k8s.configured")
+@when("leadership.is_leader")
 def waiting_for_mysql():
     layer.status.waiting("Waiting for mysql to be ready")
 
@@ -46,22 +47,29 @@ def configure():
     try:
         mysql = endpoint_from_flag("mysql.available")
 
-        spec = make_pod_spec(
-            mysql.host(),
-            mysql.port(),
-            mysql.user(),
-            mysql.password(),
-            mysql.root_password(),
-        )
-
-        log("set pod spec:\n{}".format(spec))
-        pod_spec_set(spec)
-        layer.status.active("creating container")
-        set_flag("ro-k8s.configured")
+        if mysql.host() is not None:
+            spec = make_pod_spec(
+                mysql.host(),
+                mysql.port(),
+                mysql.user(),
+                mysql.password(),
+                mysql.root_password(),
+            )
+
+            log("set pod spec:\n{}".format(spec))
+            pod_spec_set(spec)
+            layer.status.active("creating container")
+            set_flag("ro-k8s.configured")
     except Exception as e:
         layer.status.blocked("k8s spec failed to deploy: {}".format(e))
 
 
+@when("mysql.available")
+@when_not("leadership.is_leader")
+def non_leaders_active():
+    layer.status.active("ready")
+
+
 @when("ro-k8s.configured")
 def set_ro_active():
     layer.status.active("ready")
@@ -106,7 +114,6 @@ def make_pod_spec(
 
     data = {
         "name": md.get("name"),
-        "docker_image": cfg.get("image"),
         "mysql_host": mysql_host,
         "mysql_port": mysql_port,
         "mysql_user": mysql_user,