diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..0a79056
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,8 @@
+# Ignore everything
+*
+
+# Except the actual Python-package related files
+!atmosphere/**
+!poetry.lock
+!pyproject.toml
+!README.md
diff --git a/molecule/default/group_vars/all/molecule.yml b/molecule/default/group_vars/all/molecule.yml
index 476079d..eed6fd7 100644
--- a/molecule/default/group_vars/all/molecule.yml
+++ b/molecule/default/group_vars/all/molecule.yml
@@ -1,3 +1,5 @@
+atmosphere_image: "{{ lookup('file', lookup('env', 'MOLECULE_EPHEMERAL_DIRECTORY') + '/image') }}"
+
 cert_manager_issuer:
   ca:
     secretName: root-secret
diff --git a/molecule/default/tools/install-dependencies b/molecule/default/tools/install-dependencies
index 4d5fa6d..6477a1b 100755
--- a/molecule/default/tools/install-dependencies
+++ b/molecule/default/tools/install-dependencies
@@ -1,28 +1,18 @@
 #!/bin/sh -e
 
+# Generate image tag file
+IMAGE_TAG_FILE="${MOLECULE_EPHEMERAL_DIRECTORY}/image"
+
+# Check if it exists, otherwise create it.
+if [ ! -f "${IMAGE_TAG_FILE}" ]; then
+  echo "ttl.sh/$(uuidgen | tr '[:upper:]' '[:lower:]'):1d" > ${IMAGE_TAG_FILE}
+fi
+
+# Build operator image
+docker buildx build --platform linux/amd64 --tag $(cat ${IMAGE_TAG_FILE}) --push .
+
 # Install OpenStack SDK
 pip install \
   --extra-index-url https://vexxhost.github.io/wheels/alpine-3.15/ \
   netaddr \
   'openstacksdk<0.99.0'
-
-# Get the path for the collection
-COLLECTION_PATH="${HOME}/.ansible/collections/ansible_collections/vexxhost/atmosphere"
-
-# Clean-up old soft link to allow successful installation
-if [ -L "${COLLECTION_PATH}" ] && [ -d "${COLLECTION_PATH}" ]; then
-  echo "Deleting old soft link to allow successful installation"
-
-  rm ${COLLECTION_PATH}
-fi
-
-# Install Atmosphere collection
-ansible-galaxy collection install .
-
-# Switch to symbolic link after installation
-if [ ! -L "${COLLECTION_PATH}" ] && [ -d "${COLLECTION_PATH}" ]; then
-  echo "Deleting installed collection and adding soft link instead."
-
-  rm -rf ${COLLECTION_PATH}
-  ln -s . ${COLLECTION_PATH}
-fi
diff --git a/plugins/filter/to_toml.py b/plugins/filter/to_toml.py
new file mode 100644
index 0000000..9b663cd
--- /dev/null
+++ b/plugins/filter/to_toml.py
@@ -0,0 +1,15 @@
+#!/usr/bin/python
+
+import json
+
+import toml
+
+
+class FilterModule(object):
+    def filters(self):
+        return {"to_toml": self.to_toml}
+
+    def to_toml(self, variable):
+        s = json.dumps(dict(variable))
+        d = json.loads(s)
+        return toml.dumps(d)
diff --git a/roles/atmosphere/defaults/main.yml b/roles/atmosphere/defaults/main.yml
new file mode 100644
index 0000000..91157b8
--- /dev/null
+++ b/roles/atmosphere/defaults/main.yml
@@ -0,0 +1,7 @@
+atmosphere_image: quay.io/vexxhost/atmosphere:latest
+
+atmosphere_config:
+  atmosphere:
+    memcached:
+      secret_key: "{{ openstack_helm_endpoints_memcached_secret_key }}"
+      overrides: "{{ openstack_helm_infra_memcached_values | default({}) }}"
diff --git a/roles/atmosphere/tasks/main.yml b/roles/atmosphere/tasks/main.yml
new file mode 100644
index 0000000..7d95c22
--- /dev/null
+++ b/roles/atmosphere/tasks/main.yml
@@ -0,0 +1,10 @@
+- name: Install operator
+  kubernetes.core.k8s:
+    state: present
+    template:
+      - namespace.yml
+      - role.yml
+      - service_account.yml
+      - role_binding.yml
+      - secret.yml
+      - deployment.yml
diff --git a/roles/openstack_helm_infra_memcached/defaults/main.yml b/roles/openstack_helm_infra_memcached/defaults/main.yml
deleted file mode 100644
index 7d46c47..0000000
--- a/roles/openstack_helm_infra_memcached/defaults/main.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-# .. vim: foldmarker=[[[,]]]:foldmethod=marker
-
-# .. Copyright (C) 2022 VEXXHOST, Inc.
-# .. SPDX-License-Identifier: Apache-2.0
-
-# Default variables
-# =================
-
-# .. contents:: Sections
-#    :local:
-
-
-# .. envvar:: openstack_helm_infra_memcached_values [[[
-#
-# Overrides for Helm chart values
-openstack_helm_infra_memcached_values: {}
-
-                                                                   # ]]]
diff --git a/roles/openstack_helm_infra_memcached/meta/main.yml b/roles/openstack_helm_infra_memcached/meta/main.yml
index 957f2d5..8cc8938 100644
--- a/roles/openstack_helm_infra_memcached/meta/main.yml
+++ b/roles/openstack_helm_infra_memcached/meta/main.yml
@@ -22,3 +22,6 @@
     - name: Ubuntu
       versions:
         - focal
+
+dependencies:
+  - role: atmosphere
diff --git a/roles/openstack_helm_infra_memcached/tasks/main.yml b/roles/openstack_helm_infra_memcached/tasks/main.yml
index cb482d5..379a472 100644
--- a/roles/openstack_helm_infra_memcached/tasks/main.yml
+++ b/roles/openstack_helm_infra_memcached/tasks/main.yml
@@ -12,14 +12,6 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
-- name: Generate OpenStack-Helm endpoints
-  ansible.builtin.include_role:
-    name: openstack_helm_endpoints
-  vars:
-    openstack_helm_endpoints_repo_name: openstack-helm-infra
-    openstack_helm_endpoints_repo_url: https://tarballs.opendev.org/openstack/openstack-helm-infra/
-    openstack_helm_endpoints_chart: memcached
-
 - name: Deploy Helm chart
   kubernetes.core.k8s:
     state: present
@@ -33,14 +25,6 @@
           interval: 60s
           url: https://tarballs.opendev.org/openstack/openstack-helm-infra/
 
-      - apiVersion: v1
-        kind: Secret
-        metadata:
-          name: atmosphere-memcached
-          namespace: openstack
-        stringData:
-          values.yaml: "{{ _openstack_helm_infra_memcached_values | to_nice_yaml }}"
-
       - apiVersion: helm.toolkit.fluxcd.io/v2beta1
         kind: HelmRelease
         metadata:
diff --git a/roles/openstack_helm_infra_memcached/vars/main.yml b/roles/openstack_helm_infra_memcached/vars/main.yml
deleted file mode 100644
index 4acb969..0000000
--- a/roles/openstack_helm_infra_memcached/vars/main.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright (c) 2022 VEXXHOST, Inc.
-#
-# 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.
-
-_openstack_helm_infra_memcached_values: "{{ __openstack_helm_infra_memcached_values | combine(openstack_helm_infra_memcached_values, recursive=True) }}"
-__openstack_helm_infra_memcached_values:
-  endpoints: "{{ openstack_helm_endpoints }}"
-  images:
-    tags:
-      memcached: quay.io/vexxhost/memcached:1.6.9
-      prometheus_memcached_exporter: quay.io/vexxhost/memcached-exporter:v0.9.0-1
-  monitoring:
-    prometheus:
-      enabled: true
