← Back to team overview

bind-charmers team mailing list archive

[Merge] ~barryprice/charm-k8s-bind/+git/charm-k8s-bind:charm-fixes into charm-k8s-bind:master

 

Barry Price has proposed merging ~barryprice/charm-k8s-bind/+git/charm-k8s-bind:charm-fixes into charm-k8s-bind:master with ~barryprice/charm-k8s-bind/+git/charm-k8s-bind:image-builder as a prerequisite.

Commit message:
Move generate_pod_config() inside our class, add an ActiveStatus to non-leader units

Requested reviews:
  Bind Charmers (bind-charmers)

For more details, see:
https://code.launchpad.net/~barryprice/charm-k8s-bind/+git/charm-k8s-bind/+merge/388450
-- 
Your team Bind Charmers is requested to review the proposed merge of ~barryprice/charm-k8s-bind/+git/charm-k8s-bind:charm-fixes into charm-k8s-bind:master.
diff --git a/src/charm.py b/src/charm.py
index eb751a6..7a8cf34 100755
--- a/src/charm.py
+++ b/src/charm.py
@@ -16,33 +16,6 @@ logger = logging.getLogger()
 REQUIRED_SETTINGS = ['bind_image_path']
 
 
-def generate_pod_config(config, secured=True):
-    """Kubernetes pod config generator.
-
-    generate_pod_config generates Kubernetes deployment config.
-    If the secured keyword is set then it will return a sanitised copy
-    without exposing secrets.
-    """
-    pod_config = {}
-    if config["container_config"].strip():
-        pod_config = safe_load(config["container_config"])
-
-    if config["custom_config_repo"].strip():
-        pod_config["CUSTOM_CONFIG_REPO"] = config["custom_config_repo"]
-
-    if config["https_proxy"].strip():
-        pod_config["http_proxy"] = config["https_proxy"]
-        pod_config["https_proxy"] = config["https_proxy"]
-
-    if secured:
-        return pod_config
-
-    # Add secrets from charm config.
-    pass
-
-    return pod_config
-
-
 class BindK8sCharm(CharmBase):
     def __init__(self, *args):
         super().__init__(*args)
@@ -93,6 +66,7 @@ class BindK8sCharm(CharmBase):
             self.model.unit.status = ActiveStatus(msg)
         else:
             logger.info("Spec changes ignored by non-leader")
+            self.model.unit.status = ActiveStatus()
 
     def make_pod_resources(self):
         resources = {}
@@ -101,10 +75,34 @@ class BindK8sCharm(CharmBase):
         logger.info("This is the Kubernetes Pod resources <<EOM\n{}\nEOM".format(out.getvalue()))
         return resources
 
+    def generate_pod_config(self, secured=True):
+        """Kubernetes pod config generator.
+
+        generate_pod_config generates Kubernetes deployment config.
+        If the secured keyword is set then it will return a sanitised copy
+        without exposing secrets.
+        """
+        config = self.model.config
+        pod_config = {}
+        if config["container_config"].strip():
+            pod_config = safe_load(config["container_config"])
+
+        if config["custom_config_repo"].strip():
+            pod_config["CUSTOM_CONFIG_REPO"] = config["custom_config_repo"]
+
+        if config["https_proxy"].strip():
+            pod_config["http_proxy"] = config["https_proxy"]
+            pod_config["https_proxy"] = config["https_proxy"]
+
+        if secured:
+            return pod_config
+
+        return pod_config
+
     def make_pod_spec(self):
         config = self.model.config
-        full_pod_config = generate_pod_config(config, secured=False)
-        secure_pod_config = generate_pod_config(config, secured=True)
+        full_pod_config = self.generate_pod_config(secured=False)
+        secure_pod_config = self.generate_pod_config(secured=True)
 
         ports = [
             {"name": "domain-tcp", "containerPort": 53, "protocol": "TCP"},

Follow ups