chore: move barbican to offline-install
diff --git a/roles/openstack_helm_barbican/defaults/main.yml b/roles/openstack_helm_barbican/defaults/main.yml
index b499584..da86648 100644
--- a/roles/openstack_helm_barbican/defaults/main.yml
+++ b/roles/openstack_helm_barbican/defaults/main.yml
@@ -1,31 +1,23 @@
----
-# .. vim: foldmarker=[[[,]]]:foldmethod=marker
-
-# .. Copyright (C) 2022 VEXXHOST, Inc.
-# .. SPDX-License-Identifier: Apache-2.0
-
-# Default variables
-# =================
-
-# .. contents:: Sections
-#    :local:
-
-
-# .. envvar:: openstack_helm_barbican_values [[[
+# Copyright (c) 2023 VEXXHOST, Inc.
 #
-# Overrides for Helm chart values
-openstack_helm_barbican_values: {}
-
-                                                                   # ]]]
-# .. envvar:: openstack_helm_barbican_kek [[[
+# 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
 #
-# Barbican key encryption key
-openstack_helm_barbican_kek: "{{ undef(hint='You must specify a Barbican key encryption key') }}"
-
-                                                                   # ]]]
-# .. envvar:: openstack_helm_barbican_ingress_annotations [[[
+#      http://www.apache.org/licenses/LICENSE-2.0
 #
-# Ingress annotations
+# 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_barbican_helm_release_name: barbican
+openstack_helm_barbican_helm_chart_path: "{{ role_path }}/../../charts/barbican/"
+openstack_helm_barbican_helm_chart_ref: /usr/local/src/barbican
+
+openstack_helm_barbican_helm_release_namespace: openstack
+openstack_helm_barbican_helm_values: {}
+
+# List of annotations to apply to the Ingress
 openstack_helm_barbican_ingress_annotations: {}
-
-                                                                   # ]]]
diff --git a/roles/openstack_helm_barbican/meta/main.yml b/roles/openstack_helm_barbican/meta/main.yml
index 93ef377..b5e71ac 100644
--- a/roles/openstack_helm_barbican/meta/main.yml
+++ b/roles/openstack_helm_barbican/meta/main.yml
@@ -25,4 +25,10 @@
 
 dependencies:
   - role: defaults
-  - role: atmosphere
+  - role: openstack_helm_endpoints
+    vars:
+      openstack_helm_endpoints_chart: barbican
+  - role: upload_helm_chart
+    vars:
+      upload_helm_chart_src: "{{ openstack_helm_barbican_helm_chart_path }}"
+      upload_helm_chart_dest: "{{ openstack_helm_barbican_helm_chart_ref }}"
diff --git a/roles/openstack_helm_barbican/tasks/main.yml b/roles/openstack_helm_barbican/tasks/main.yml
index c4645a8..684cdfe 100644
--- a/roles/openstack_helm_barbican/tasks/main.yml
+++ b/roles/openstack_helm_barbican/tasks/main.yml
@@ -12,45 +12,37 @@
 # 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_chart: barbican
+- name: Uninstall the legacy HelmRelease
+  run_once: true
+  block:
+    - name: Suspend the existing HelmRelease
+      kubernetes.core.k8s:
+        state: patched
+        api_version: helm.toolkit.fluxcd.io/v2beta1
+        kind: HelmRelease
+        name: "{{ openstack_helm_barbican_helm_release_name }}"
+        namespace: "{{ openstack_helm_barbican_helm_release_namespace }}"
+        definition:
+          spec:
+            suspend: true
+
+    - name: Remove the existing HelmRelease
+      kubernetes.core.k8s:
+        state: absent
+        api_version: helm.toolkit.fluxcd.io/v2beta1
+        kind: HelmRelease
+        name: "{{ openstack_helm_barbican_helm_release_name }}"
+        namespace: "{{ openstack_helm_barbican_helm_release_namespace }}"
 
 - name: Deploy Helm chart
-  kubernetes.core.k8s:
-    state: present
-    definition:
-      - apiVersion: v1
-        kind: Secret
-        metadata:
-          name: atmosphere-barbican
-          namespace: openstack
-        stringData:
-          values.yaml: "{{ _openstack_helm_barbican_values | combine(openstack_helm_barbican_values, recursive=True) | to_nice_yaml }}"
-
-      - apiVersion: helm.toolkit.fluxcd.io/v2beta1
-        kind: HelmRelease
-        metadata:
-          name: barbican
-          namespace: openstack
-        spec:
-          interval: 60s
-          chart:
-            spec:
-              chart: barbican
-              version: 0.2.12
-              sourceRef:
-                kind: HelmRepository
-                name: openstack-helm
-          install:
-            disableWait: true
-          upgrade:
-            disableWait: true
-          valuesFrom:
-            - kind: Secret
-              name: atmosphere-barbican
+  run_once: true
+  kubernetes.core.helm:
+    name: "{{ openstack_helm_barbican_helm_release_name }}"
+    chart_ref: "{{ openstack_helm_barbican_helm_chart_ref }}"
+    release_namespace: "{{ openstack_helm_barbican_helm_release_namespace }}"
+    create_namespace: true
+    kubeconfig: /etc/kubernetes/admin.conf
+    values: "{{ _openstack_helm_barbican_helm_values | combine(openstack_helm_barbican_helm_values, recursive=True) }}"
 
 - name: Create Ingress
   ansible.builtin.include_role:
diff --git a/roles/openstack_helm_barbican/vars/main.yml b/roles/openstack_helm_barbican/vars/main.yml
index b970f15..92a8dd2 100644
--- a/roles/openstack_helm_barbican/vars/main.yml
+++ b/roles/openstack_helm_barbican/vars/main.yml
@@ -12,7 +12,7 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
-_openstack_helm_barbican_values:
+_openstack_helm_barbican_helm_values:
   endpoints: "{{ openstack_helm_endpoints }}"
   images:
     pull_policy: Always