@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")
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")
data = {
"name": md.get("name"),
- "docker_image": cfg.get("image"),
"mysql_host": mysql_host,
"mysql_port": mysql_port,
"mysql_user": mysql_user,