diff --git a/atmosphere/cmd/operator.py b/atmosphere/cmd/operator.py
index fbef0e1..9a1fc52 100644
--- a/atmosphere/cmd/operator.py
+++ b/atmosphere/cmd/operator.py
@@ -1,46 +1,24 @@
 import time
 
-from watchdog.events import FileSystemEventHandler
-from watchdog.observers import Observer
-
-from atmosphere import config, flows, logger
-from atmosphere.config import CONF
+from atmosphere import flows, logger
+from atmosphere.models import config
 
 LOG = logger.get_logger()
 
 
-class AtmosphereFileSystemEventHandler(FileSystemEventHandler):
-    def on_modified(self, event):
-        LOG.info("Detected change in config file, reloading")
-        # NOTE(mnaser): Honestly, after two days, I have no idea why overriding
-        #               the CONF object directly doesn't work, instead we override
-        #               all of it's attribute one by one and.. that works.
-        conf = config.load_config(event.src_path)
-        for c in config._root_config:
-            group = conf.get(c.name)
-            setattr(CONF, c.name, group)
-        engine = flows.get_engine()
-        engine.run()
-
-
 def main():
     LOG.info("Starting Atmosphere operator")
 
-    engine = flows.get_engine()
+    cfg = config.load_from_file()
+
+    engine = flows.get_engine(cfg)
     engine.run()
     LOG.info("Atmosphere operator successfully started")
 
-    observer = Observer()
-    observer.schedule(
-        AtmosphereFileSystemEventHandler(), config.CONFIG_FILE, recursive=True
-    )
-
-    observer.start()
     try:
         while True:
             time.sleep(1)
     except KeyboardInterrupt:
-        observer.stop()
-    observer.join()
+        pass
 
     LOG.info("Stopping Atmosphere operator")
diff --git a/atmosphere/config/__init__.py b/atmosphere/config/__init__.py
deleted file mode 100644
index 1f8fe0c..0000000
--- a/atmosphere/config/__init__.py
+++ /dev/null
@@ -1,23 +0,0 @@
-import os
-import sys
-
-import confspirator
-from confspirator import groups
-
-from atmosphere.config import images, memcached
-
-_root_config = groups.ConfigGroup("atmosphere")
-_root_config.register_child_config(images.config_group)
-_root_config.register_child_config(memcached.config_group)
-
-CONFIG_FILE = os.environ.get("ATMOSPHERE_CONFIG", "/etc/atmosphere/config.toml")
-
-
-def load_config(file=CONFIG_FILE):
-    if "pytest" in sys.modules:
-        return confspirator.load_dict(_root_config, {}, test_mode=True)
-
-    return confspirator.load_file(_root_config, file)
-
-
-CONF = load_config()
diff --git a/atmosphere/config/images.py b/atmosphere/config/images.py
deleted file mode 100644
index 2520187..0000000
--- a/atmosphere/config/images.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from confspirator import fields, groups
-
-config_group = groups.ConfigGroup("images")
-
-config_group.register_child_config(
-    fields.StrConfig(
-        "memcached",
-        required=True,
-        default="docker.io/library/memcached:1.6.17",
-        help_text="Memcached image",
-    ),
-)
-config_group.register_child_config(
-    fields.StrConfig(
-        "memcached_exporter",
-        required=True,
-        default="quay.io/prometheus/memcached-exporter:v0.10.0",
-        help_text="Prometheus Memcached exporter image",
-    ),
-)
diff --git a/atmosphere/config/memcached.py b/atmosphere/config/memcached.py
deleted file mode 100644
index 11acbfb..0000000
--- a/atmosphere/config/memcached.py
+++ /dev/null
@@ -1,29 +0,0 @@
-import uuid
-
-from confspirator import fields, groups
-
-config_group = groups.ConfigGroup("memcached")
-
-config_group.register_child_config(
-    fields.BoolConfig(
-        "enabled",
-        default=True,
-        required=True,
-        help_text="Enable Atmosphere-managed Memcached",
-    ),
-)
-config_group.register_child_config(
-    fields.StrConfig(
-        "secret_key",
-        required=True,
-        help_text="Encryption secret key",
-        test_default=uuid.uuid4().hex,
-    ),
-)
-config_group.register_child_config(
-    fields.DictConfig(
-        "overrides",
-        help_text="Override Helm chart values",
-        default={},
-    )
-)
diff --git a/atmosphere/flows.py b/atmosphere/flows.py
index 29b3de1..77ba09b 100644
--- a/atmosphere/flows.py
+++ b/atmosphere/flows.py
@@ -1,22 +1,21 @@
 from taskflow import engines
 from taskflow.patterns import graph_flow
 
-from atmosphere.config import CONF
 from atmosphere.tasks import constants
 from atmosphere.tasks.composite import openstack_helm
 from atmosphere.tasks.kubernetes import flux, v1
 
 
-def get_engine():
+def get_engine(config):
     return engines.load(
-        get_deployment_flow(),
+        get_deployment_flow(config),
         executor="greenthreaded",
         engine="parallel",
         max_workers=4,
     )
 
 
-def get_deployment_flow():
+def get_deployment_flow(config):
     flow = graph_flow.Flow("deploy").add(
         # kube-system
         v1.ApplyNamespaceTask(name=constants.NAMESPACE_KUBE_SYSTEM),
@@ -146,7 +145,7 @@
         ),
     )
 
-    if CONF.memcached.enabled:
+    if config.memcached.enabled:
         flow.add(
             openstack_helm.ApplyReleaseSecretTask(
                 namespace=constants.NAMESPACE_OPENSTACK, chart="memcached"
diff --git a/atmosphere/models/config.py b/atmosphere/models/config.py
new file mode 100644
index 0000000..20ad2ce
--- /dev/null
+++ b/atmosphere/models/config.py
@@ -0,0 +1,77 @@
+import os
+
+import tomli
+from schematics import types
+
+from atmosphere.models import base
+
+CONFIG_FILE = os.environ.get("ATMOSPHERE_CONFIG", "/etc/atmosphere/config.toml")
+
+
+class AcmeIssuerSolverConfig(base.Model):
+    type = types.StringType(choices=("http", "route53"), default="http", required=True)
+
+    @classmethod
+    def _claim_polymorphic(cls, data):
+        return data.get("type", cls.type.default) == cls.TYPE
+
+
+class HttpAcmeIssuerSolverConfig(AcmeIssuerSolverConfig):
+    TYPE = "http"
+
+
+class Route53AcmeIssuerSolverConfig(AcmeIssuerSolverConfig):
+    TYPE = "route53"
+
+    access_key_id = types.StringType(required=True)
+    secret_access_key = types.StringType(required=True)
+    hosted_zone_id = types.StringType(required=True)
+
+
+class Issuer(base.Model):
+    type = types.StringType(
+        choices=("self-signed", "acme"), default="acme", required=True
+    )
+
+    @classmethod
+    def _claim_polymorphic(cls, data):
+        return data.get("type", cls.type.default) == cls.TYPE
+
+
+class AcmeIssuerConfig(Issuer):
+    TYPE = "acme"
+
+    email = types.StringType(required=True)
+    server = types.URLType(default="https://acme-v02.api.letsencrypt.org/directory")
+    solver = types.PolyModelType(
+        [HttpAcmeIssuerSolverConfig, Route53AcmeIssuerSolverConfig], required=True
+    )
+
+
+class SelfSignedIssuerConfig(Issuer):
+    TYPE = "self-signed"
+
+
+class MemcachedImagesConfig(base.Model):
+    memcached = types.StringType(default="docker.io/library/memcached:1.6.17")
+    exporter = types.StringType(default="quay.io/prometheus/memcached-exporter:v0.10.0")
+
+
+class MemcachedConfig(base.Model):
+    enabled = types.BooleanType(default=True)
+    secret_key = types.StringType(required=True)
+    images = types.ModelType(MemcachedImagesConfig, default=MemcachedImagesConfig())
+    overrides = types.DictType(types.BaseType(), default={})
+
+
+class Config(base.Model):
+    memcached = types.ModelType(MemcachedConfig, required=True)
+    issuer = types.DictType(
+        types.PolyModelType([AcmeIssuerConfig, SelfSignedIssuerConfig])
+    )
+
+    @classmethod
+    def load_from_file(cls, path=CONFIG_FILE):
+        with open(path, "rb") as fd:
+            data = tomli.load(fd)
+            return cls(data, validate=True)
diff --git a/atmosphere/models/openstack_helm/endpoints.py b/atmosphere/models/openstack_helm/endpoints.py
index 7de615b..f86980e 100644
--- a/atmosphere/models/openstack_helm/endpoints.py
+++ b/atmosphere/models/openstack_helm/endpoints.py
@@ -1,6 +1,5 @@
 from schematics import types
 
-from atmosphere.config import CONF
 from atmosphere.models import base
 
 
@@ -20,12 +19,12 @@
     auth = types.ModelType(OsloCacheEndpointAuth)
 
     @classmethod
-    def for_chart(cls, chart):
+    def for_chart(cls, chart, config):
         return cls(
             {
                 "auth": OsloCacheEndpointAuth(
                     {
-                        "memcache_secret_key": CONF.memcached.secret_key,
+                        "memcache_secret_key": config.memcached.secret_key,
                     }
                 )
             }
@@ -50,7 +49,7 @@
     hosts = types.ModelType(OsloDbEndpointHosts, default=OsloDbEndpointHosts())
 
     @classmethod
-    def for_chart(cls, chart):
+    def for_chart(cls, chart, config):
         pass
 
 
@@ -68,11 +67,13 @@
     }
 
     @classmethod
-    def for_chart(cls, chart):
+    def for_chart(cls, chart, config):
         endpoint = cls()
 
         for endpoint_name in cls.ENDPOINTS[chart]:
-            endpoint[endpoint_name] = cls.MAPPINGS[endpoint_name].for_chart(chart)
+            endpoint[endpoint_name] = cls.MAPPINGS[endpoint_name].for_chart(
+                chart, config
+            )
         endpoint.validate()
 
         return endpoint
diff --git a/atmosphere/models/openstack_helm/images.py b/atmosphere/models/openstack_helm/images.py
index 32b03dd..7ed5283 100644
--- a/atmosphere/models/openstack_helm/images.py
+++ b/atmosphere/models/openstack_helm/images.py
@@ -1,6 +1,5 @@
 from schematics import types
 
-from atmosphere.config import CONF
 from atmosphere.models import base
 
 
@@ -13,11 +12,11 @@
     prometheus_memcached_exporter = types.StringType(required=True)
 
     @classmethod
-    def for_chart(cls, chart):
+    def for_chart(cls, chart, config):
         return cls(
             {
-                "memcached": CONF.images.memcached,
-                "prometheus_memcached_exporter": CONF.images.memcached_exporter,
+                "memcached": config.memcached.images.memcached,
+                "prometheus_memcached_exporter": config.memcached.images.exporter,
             }
         )
 
@@ -31,9 +30,9 @@
     }
 
     @classmethod
-    def for_chart(cls, chart):
+    def for_chart(cls, chart, config):
         return cls(
             {
-                "tags": cls.MAPPINGS[chart].for_chart(chart),
+                "tags": cls.MAPPINGS[chart].for_chart(chart, config),
             }
         )
diff --git a/atmosphere/models/openstack_helm/monitoring.py b/atmosphere/models/openstack_helm/monitoring.py
index e67b656..c508f3c 100644
--- a/atmosphere/models/openstack_helm/monitoring.py
+++ b/atmosphere/models/openstack_helm/monitoring.py
@@ -11,7 +11,7 @@
     prometheus = types.ModelType(PrometheusMonitoring)
 
     @classmethod
-    def for_chart(cls, chart):
+    def for_chart(cls, chart, config):
         if chart == "memcached":
             return Monitoring(
                 {
diff --git a/atmosphere/models/openstack_helm/values.py b/atmosphere/models/openstack_helm/values.py
index 516d50c..afa3eab 100644
--- a/atmosphere/models/openstack_helm/values.py
+++ b/atmosphere/models/openstack_helm/values.py
@@ -1,10 +1,6 @@
-import mergedeep
-import yaml
-from oslo_serialization import base64
 from schematics import types
 from schematics.transforms import blacklist
 
-from atmosphere.config import CONF
 from atmosphere.models import base
 from atmosphere.models.openstack_helm import endpoints, images, monitoring
 
@@ -17,23 +13,15 @@
     monitoring = types.ModelType(monitoring.Monitoring)
 
     class Options:
-        roles = {"default": blacklist("chart")}
+        roles = {"default": blacklist("chart", "config")}
 
     @classmethod
-    def for_chart(cls, chart):
+    def for_chart(cls, chart, config):
         return cls(
             {
                 "chart": chart,
-                "endpoints": endpoints.Endpoints.for_chart(chart),
-                "images": images.Images.for_chart(chart),
-                "monitoring": monitoring.Monitoring.for_chart(chart),
+                "endpoints": endpoints.Endpoints.for_chart(chart, config),
+                "images": images.Images.for_chart(chart, config),
+                "monitoring": monitoring.Monitoring.for_chart(chart, config),
             }
         )
-
-    @property
-    def secret_data(self):
-        data = self.to_native()
-        overrides = getattr(CONF, self.chart).overrides
-        values = mergedeep.merge({}, data, overrides)
-        values_yaml = yaml.dump(values, default_flow_style=False)
-        return {"values.yaml": base64.encode_as_text(values_yaml)}
diff --git a/atmosphere/tasks/composite/openstack_helm.py b/atmosphere/tasks/composite/openstack_helm.py
index 856ac1e..5f329b9 100644
--- a/atmosphere/tasks/composite/openstack_helm.py
+++ b/atmosphere/tasks/composite/openstack_helm.py
@@ -1,5 +1,9 @@
+import mergedeep
 import pykube
+import yaml
+from oslo_serialization import base64
 
+from atmosphere.models import config
 from atmosphere.models.openstack_helm import values
 from atmosphere.tasks import constants
 from atmosphere.tasks.kubernetes import base, flux, v1
@@ -7,10 +11,19 @@
 
 class ApplyReleaseSecretTask(v1.ApplySecretTask):
     def __init__(self, namespace: str, chart: str, *args, **kwargs):
+        cfg = config.Config.load_from_file()
+        vals = values.Values.for_chart(chart, cfg)
+
+        data = values.to_native()
+        overrides = getattr(cfg, chart).overrides
+
+        vals = mergedeep.merge({}, data, overrides)
+        values_yaml = yaml.dump(vals, default_flow_style=False)
+
         super().__init__(
             namespace,
             f"atmosphere-{chart}",
-            values.Values.for_chart(chart).secret_data,
+            {"values.yaml": base64.encode_as_text(values_yaml)},
             *args,
             **kwargs,
         )
diff --git a/atmosphere/tests/e2e/test_operator.py b/atmosphere/tests/e2e/test_operator.py
index bf3cbfe..adc59e4 100644
--- a/atmosphere/tests/e2e/test_operator.py
+++ b/atmosphere/tests/e2e/test_operator.py
@@ -33,10 +33,8 @@
     args = {
         "atmosphere_image": docker_image,
         "atmosphere_config": {
-            "atmosphere": {
-                "memcached": {
-                    "secret_key": "foobar",
-                }
+            "memcached": {
+                "secret_key": "foobar",
             }
         },
     }
diff --git a/atmosphere/tests/integration/test_deploy.py b/atmosphere/tests/integration/test_deploy.py
index 41ee1c3..9d0210d 100644
--- a/atmosphere/tests/integration/test_deploy.py
+++ b/atmosphere/tests/integration/test_deploy.py
@@ -1,8 +1,7 @@
-import confspirator
 import pykube
 
 from atmosphere import flows
-from atmosphere.config import CONF
+from atmosphere.models import config
 
 
 def test_kubernetes_version(flux_cluster):
@@ -17,7 +16,8 @@
         "label", "node", "pytest-kind-control-plane", "openstack-control-plane=enabled"
     )
 
-    engine = flows.get_engine()
+    cfg = config.Config.get_mock_object()
+    engine = flows.get_engine(cfg)
     engine.run()
 
     initial_memcache_secret = pykube.Secret.objects(
@@ -25,16 +25,9 @@
     ).get_by_name("atmosphere-memcached")
     assert initial_memcache_secret.exists()
 
-    with confspirator.modify_conf(
-        CONF,
-        {
-            "atmosphere.memcached.secret_key": [
-                {"operation": "override", "value": "not-secret"}
-            ],
-        },
-    ):
-        engine = flows.get_engine()
-        engine.run()
+    cfg.memcached.secret_key = "not-secret"
+    engine = flows.get_engine(cfg)
+    engine.run()
 
     updated_memcache_secret = pykube.Secret.objects(
         flux_cluster.api, namespace="openstack"
diff --git a/atmosphere/tests/unit/models/openstack_helm/test_endpoints.py b/atmosphere/tests/unit/models/openstack_helm/test_endpoints.py
index 9957a78..3f5cfb5 100644
--- a/atmosphere/tests/unit/models/openstack_helm/test_endpoints.py
+++ b/atmosphere/tests/unit/models/openstack_helm/test_endpoints.py
@@ -2,7 +2,7 @@
 import requests
 import yaml
 
-from atmosphere.config import CONF
+from atmosphere.models import config
 from atmosphere.models.openstack_helm import endpoints as osh_endpoints
 
 # XXX(mnaser): Once we have the details of our charts codified, we can get rid
@@ -30,18 +30,21 @@
     data = yaml.safe_load(raw_data)
 
     chart_keys = data["endpoints"].keys() - ignored_keys
-    atmosphere_keys = osh_endpoints.Endpoints.for_chart(chart).to_native().keys()
+
+    cfg = config.Config.get_mock_object()
+    atmosphere_keys = osh_endpoints.Endpoints.for_chart(chart, cfg).to_native().keys()
 
     assert chart_keys == atmosphere_keys
 
 
 def test_endpoint_for_chart_memcached():
-    endpoints = osh_endpoints.Endpoints.for_chart("memcached")
+    cfg = config.Config.get_mock_object()
+    endpoints = osh_endpoints.Endpoints.for_chart("memcached", cfg)
 
     assert {
         "oslo_cache": {
             "auth": {
-                "memcache_secret_key": CONF.memcached.secret_key,
+                "memcache_secret_key": cfg.memcached.secret_key,
             }
         }
     } == endpoints.to_primitive()
diff --git a/atmosphere/tests/unit/models/openstack_helm/test_images.py b/atmosphere/tests/unit/models/openstack_helm/test_images.py
index c529c49..a724b34 100644
--- a/atmosphere/tests/unit/models/openstack_helm/test_images.py
+++ b/atmosphere/tests/unit/models/openstack_helm/test_images.py
@@ -1,33 +1,13 @@
-import confspirator
-
-from atmosphere.config import CONF
+from atmosphere.models import config
 from atmosphere.models.openstack_helm import images as osh_images
 
 
-def test_images_for_chart_memcached_with_defaults():
+def test_images_for_chart_memcached():
+    cfg = config.Config.get_mock_object()
     assert {
         "pull_policy": "Always",
         "tags": {
-            "memcached": CONF.images.memcached,
-            "prometheus_memcached_exporter": CONF.images.memcached_exporter,
+            "memcached": cfg.memcached.images.memcached,
+            "prometheus_memcached_exporter": cfg.memcached.images.exporter,
         },
-    } == osh_images.Images.for_chart("memcached").to_primitive()
-
-
-@confspirator.modify_conf(
-    CONF,
-    {
-        "atmosphere.images.memcached": [{"operation": "override", "value": "foo"}],
-        "atmosphere.images.memcached_exporter": [
-            {"operation": "override", "value": "bar"}
-        ],
-    },
-)
-def test_images_for_chart_memcached_with_overrides():
-    assert {
-        "pull_policy": "Always",
-        "tags": {
-            "memcached": "foo",
-            "prometheus_memcached_exporter": "bar",
-        },
-    } == osh_images.Images.for_chart("memcached").to_primitive()
+    } == osh_images.Images.for_chart("memcached", cfg).to_primitive()
diff --git a/atmosphere/tests/unit/models/openstack_helm/test_values.py b/atmosphere/tests/unit/models/openstack_helm/test_values.py
index d5e8f1d..8ed2dfa 100644
--- a/atmosphere/tests/unit/models/openstack_helm/test_values.py
+++ b/atmosphere/tests/unit/models/openstack_helm/test_values.py
@@ -1,22 +1,23 @@
-from atmosphere.config import CONF
+from atmosphere.models import config
 from atmosphere.models.openstack_helm import values as osh_values
 
 
 class TestMemcachedValues:
     def test_values_for_chart(self):
-        values = osh_values.Values.for_chart("memcached")
+        cfg = config.Config.get_mock_object()
+        values = osh_values.Values.for_chart("memcached", cfg)
 
         assert {
             "endpoints": {
                 "oslo_cache": {
-                    "auth": {"memcache_secret_key": CONF.memcached.secret_key}
+                    "auth": {"memcache_secret_key": cfg.memcached.secret_key}
                 }
             },
             "images": {
                 "pull_policy": "Always",
                 "tags": {
-                    "memcached": CONF.images.memcached,
-                    "prometheus_memcached_exporter": CONF.images.memcached_exporter,
+                    "memcached": cfg.memcached.images.memcached,
+                    "prometheus_memcached_exporter": cfg.memcached.images.exporter,
                 },
             },
             "monitoring": {
diff --git a/poetry.lock b/poetry.lock
index 613801f..cc587e2 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -165,23 +165,6 @@
 test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"]
 
 [[package]]
-name = "confspirator"
-version = "0.3.0"
-description = "A config library for handling nested incode config groups."
-category = "main"
-optional = false
-python-versions = "*"
-
-[package.dependencies]
-netaddr = ">=0.7.18"
-pbr = ">=5.2.0"
-python-slugify = ">=3.0.2"
-PyYAML = ">=5.1"
-rfc3986 = ">=1.2.0"
-six = ">=1.12.0"
-toml = ">=0.10.2"
-
-[[package]]
 name = "cookiecutter"
 version = "2.1.1"
 description = "A command-line utility that creates projects from project templates, e.g. creating a Python package project from a Python package project template."
@@ -779,7 +762,7 @@
 name = "python-slugify"
 version = "6.1.2"
 description = "A Python slugify application that also handles Unicode"
-category = "main"
+category = "dev"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
 
@@ -824,17 +807,6 @@
 use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"]
 
 [[package]]
-name = "rfc3986"
-version = "2.0.0"
-description = "Validating URI References per RFC 3986"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.extras]
-idna2008 = ["idna"]
-
-[[package]]
 name = "rich"
 version = "12.5.1"
 description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal"
@@ -958,23 +930,15 @@
 name = "text-unidecode"
 version = "1.3"
 description = "The most basic Text::Unidecode port"
-category = "main"
+category = "dev"
 optional = false
 python-versions = "*"
 
 [[package]]
-name = "toml"
-version = "0.10.2"
-description = "Python Library for Tom's Obvious, Minimal Language"
-category = "main"
-optional = false
-python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
-
-[[package]]
 name = "tomli"
 version = "2.0.1"
 description = "A lil' TOML parser"
-category = "dev"
+category = "main"
 optional = false
 python-versions = ">=3.7"
 
@@ -1034,17 +998,6 @@
 socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
 
 [[package]]
-name = "watchdog"
-version = "2.1.9"
-description = "Filesystem events monitoring"
-category = "main"
-optional = false
-python-versions = ">=3.6"
-
-[package.extras]
-watchmedo = ["PyYAML (>=3.10)"]
-
-[[package]]
 name = "wcwidth"
 version = "0.2.5"
 description = "Measures the displayed width of unicode strings in a terminal"
@@ -1063,7 +1016,7 @@
 [metadata]
 lock-version = "1.1"
 python-versions = "^3.10"
-content-hash = "2467ec3e1730d789b4b33c269da9c86b57a804c7560c78eeb05dd08784da4017"
+content-hash = "9b2037d4a4a41305e6950728f58b0f7d59e60bc87f8d93db7ff2741e7992d5c8"
 
 [metadata.files]
 ansible-compat = [
@@ -1126,9 +1079,6 @@
     {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"},
     {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"},
 ]
-confspirator = [
-    {file = "confspirator-0.3.0.tar.gz", hash = "sha256:065c22e8c317c623668fd71c6c40038829b934ec320785c7d21e05b6a5b2c711"},
-]
 cookiecutter = [
     {file = "cookiecutter-2.1.1-py2.py3-none-any.whl", hash = "sha256:9f3ab027cec4f70916e28f03470bdb41e637a3ad354b4d65c765d93aad160022"},
     {file = "cookiecutter-2.1.1.tar.gz", hash = "sha256:f3982be8d9c53dac1261864013fdec7f83afd2e42ede6f6dd069c5e149c540d5"},
@@ -1648,10 +1598,6 @@
     {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"},
     {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"},
 ]
-rfc3986 = [
-    {file = "rfc3986-2.0.0-py2.py3-none-any.whl", hash = "sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd"},
-    {file = "rfc3986-2.0.0.tar.gz", hash = "sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c"},
-]
 rich = [
     {file = "rich-12.5.1-py3-none-any.whl", hash = "sha256:2eb4e6894cde1e017976d2975ac210ef515d7548bc595ba20e195fb9628acdeb"},
     {file = "rich-12.5.1.tar.gz", hash = "sha256:63a5c5ce3673d3d5fbbf23cd87e11ab84b6b451436f1b7f19ec54b6bc36ed7ca"},
@@ -1692,10 +1638,6 @@
     {file = "text-unidecode-1.3.tar.gz", hash = "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93"},
     {file = "text_unidecode-1.3-py2.py3-none-any.whl", hash = "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8"},
 ]
-toml = [
-    {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
-    {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
-]
 tomli = [
     {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
     {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
@@ -1716,33 +1658,6 @@
     {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"},
     {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"},
 ]
-watchdog = [
-    {file = "watchdog-2.1.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a735a990a1095f75ca4f36ea2ef2752c99e6ee997c46b0de507ba40a09bf7330"},
-    {file = "watchdog-2.1.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b17d302850c8d412784d9246cfe8d7e3af6bcd45f958abb2d08a6f8bedf695d"},
-    {file = "watchdog-2.1.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ee3e38a6cc050a8830089f79cbec8a3878ec2fe5160cdb2dc8ccb6def8552658"},
-    {file = "watchdog-2.1.9-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:64a27aed691408a6abd83394b38503e8176f69031ca25d64131d8d640a307591"},
-    {file = "watchdog-2.1.9-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:195fc70c6e41237362ba720e9aaf394f8178bfc7fa68207f112d108edef1af33"},
-    {file = "watchdog-2.1.9-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:bfc4d351e6348d6ec51df007432e6fe80adb53fd41183716017026af03427846"},
-    {file = "watchdog-2.1.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8250546a98388cbc00c3ee3cc5cf96799b5a595270dfcfa855491a64b86ef8c3"},
-    {file = "watchdog-2.1.9-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:117ffc6ec261639a0209a3252546b12800670d4bf5f84fbd355957a0595fe654"},
-    {file = "watchdog-2.1.9-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:97f9752208f5154e9e7b76acc8c4f5a58801b338de2af14e7e181ee3b28a5d39"},
-    {file = "watchdog-2.1.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:247dcf1df956daa24828bfea5a138d0e7a7c98b1a47cf1fa5b0c3c16241fcbb7"},
-    {file = "watchdog-2.1.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:226b3c6c468ce72051a4c15a4cc2ef317c32590d82ba0b330403cafd98a62cfd"},
-    {file = "watchdog-2.1.9-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d9820fe47c20c13e3c9dd544d3706a2a26c02b2b43c993b62fcd8011bcc0adb3"},
-    {file = "watchdog-2.1.9-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:70af927aa1613ded6a68089a9262a009fbdf819f46d09c1a908d4b36e1ba2b2d"},
-    {file = "watchdog-2.1.9-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ed80a1628cee19f5cfc6bb74e173f1b4189eb532e705e2a13e3250312a62e0c9"},
-    {file = "watchdog-2.1.9-py3-none-manylinux2014_aarch64.whl", hash = "sha256:9f05a5f7c12452f6a27203f76779ae3f46fa30f1dd833037ea8cbc2887c60213"},
-    {file = "watchdog-2.1.9-py3-none-manylinux2014_armv7l.whl", hash = "sha256:255bb5758f7e89b1a13c05a5bceccec2219f8995a3a4c4d6968fe1de6a3b2892"},
-    {file = "watchdog-2.1.9-py3-none-manylinux2014_i686.whl", hash = "sha256:d3dda00aca282b26194bdd0adec21e4c21e916956d972369359ba63ade616153"},
-    {file = "watchdog-2.1.9-py3-none-manylinux2014_ppc64.whl", hash = "sha256:186f6c55abc5e03872ae14c2f294a153ec7292f807af99f57611acc8caa75306"},
-    {file = "watchdog-2.1.9-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:083171652584e1b8829581f965b9b7723ca5f9a2cd7e20271edf264cfd7c1412"},
-    {file = "watchdog-2.1.9-py3-none-manylinux2014_s390x.whl", hash = "sha256:b530ae007a5f5d50b7fbba96634c7ee21abec70dc3e7f0233339c81943848dc1"},
-    {file = "watchdog-2.1.9-py3-none-manylinux2014_x86_64.whl", hash = "sha256:4f4e1c4aa54fb86316a62a87b3378c025e228178d55481d30d857c6c438897d6"},
-    {file = "watchdog-2.1.9-py3-none-win32.whl", hash = "sha256:5952135968519e2447a01875a6f5fc8c03190b24d14ee52b0f4b1682259520b1"},
-    {file = "watchdog-2.1.9-py3-none-win_amd64.whl", hash = "sha256:7a833211f49143c3d336729b0020ffd1274078e94b0ae42e22f596999f50279c"},
-    {file = "watchdog-2.1.9-py3-none-win_ia64.whl", hash = "sha256:ad576a565260d8f99d97f2e64b0f97a48228317095908568a9d5c786c829d428"},
-    {file = "watchdog-2.1.9.tar.gz", hash = "sha256:43ce20ebb36a51f21fa376f76d1d4692452b2527ccd601950d69ed36b9e21609"},
-]
 wcwidth = [
     {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"},
     {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"},
diff --git a/pyproject.toml b/pyproject.toml
index d09bb04..650687b 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -12,14 +12,13 @@
 python = "^3.10"
 schematics = "^2.1.1"
 pykube-ng = "^22.7.0"
-confspirator = "^0.3.0"
-watchdog = "^2.1.9"
 structlog = "^22.1.0"
 rich = "^12.5.1"
 better-exceptions = "^0.3.3"
 mergedeep = "^1.3.4"
 taskflow = "^5.0.0"
 eventlet = "^0.33.1"
+tomli = "^2.0.1"
 
 [tool.poetry.group.dev.dependencies]
 pytest = "^7.1.3"
diff --git a/roles/atmosphere/defaults/main.yml b/roles/atmosphere/defaults/main.yml
index 7075517..5f20539 100644
--- a/roles/atmosphere/defaults/main.yml
+++ b/roles/atmosphere/defaults/main.yml
@@ -1,7 +1,6 @@
 atmosphere_image: quay.io/vexxhost/atmosphere:0.3.0 # x-release-please-version
 
 atmosphere_config:
-  atmosphere:
-    memcached:
-      secret_key: "{{ openstack_helm_endpoints_memcached_secret_key }}"
-      overrides: "{{ openstack_helm_infra_memcached_values | default({}) }}"
+  memcached:
+    secret_key: "{{ openstack_helm_endpoints_memcached_secret_key }}"
+    overrides: "{{ openstack_helm_infra_memcached_values | default({}) }}"
