Move to Python dict for configs
diff --git a/hack/generate-github-workflows b/hack/generate-github-workflows
index f3de6bf..5622777 100755
--- a/hack/generate-github-workflows
+++ b/hack/generate-github-workflows
@@ -24,6 +24,34 @@
 ]
 RELEASES = ["xena", "wallaby", "yoga", "master"]
 
+PROFILES = {
+    "cinder": "ceph qemu",
+    "nova": "ceph openvswitch configdrive qemu migration",
+    "neutron": "openvswitch vpn",
+    "keystone": "apache ldap openidc",
+    "horizon": "apache",
+    "monasca-api": "apache influxdb",
+    "ironic": "ipxe ipmi qemu tftp",
+    "glance": "ceph",
+    "monasca-persister": "influxdb",
+    "placement": "apache",
+}
+DIST_PACKAGES = {
+    "heat": "curl",
+    "designate": "bind9utils",
+    "nova": "ovmf qemu-efi-aarch64",
+    "neutron": "jq ethtool lshw",
+    "monasca-agent": "iproute2 libvirt-clients lshw",
+    "ironic": "ethtool lshw iproute2",
+}
+PIP_PACKAGES = {
+    "neutron": "neutron-vpnaas",
+    "monasca-agent": "libvirt-python python-glanceclient python-neutronclient python-novaclient py3nvml",
+    "horizon": "designate-dashboard heat-dashboard ironic-ui magnum-ui neutron-vpnaas-dashboard octavia-dashboard senlin-dashboard monasca-ui",
+    "ironic": "python-dracclient sushy",
+    "placement": "httplib2",
+}
+
 
 def get_ref_for_project(project, release):
     return (
@@ -31,43 +59,14 @@
     )
 
 
-def get_profiles_for_project(project):
-    try:
-        return open(f"images/openstack/projects/{project}/profiles", "r").read().strip()
-    except FileNotFoundError:
-        return ""
-
-
-def get_dist_packages_for_project(project):
-    try:
-        return (
-            open(f"images/openstack/projects/{project}/dist-packages", "r")
-            .read()
-            .strip()
-        )
-    except FileNotFoundError:
-        return ""
-
-
-def get_pip_packages_for_project(project):
-    try:
-        return (
-            open(f"images/openstack/projects/{project}/pip-packages", "r")
-            .read()
-            .strip()
-        )
-    except FileNotFoundError:
-        return ""
-
-
 def get_build_args_for_project(project, release):
     return {
         "RELEASE": release,
         "PROJECT": project,
         "PROJECT_REF": get_ref_for_project(project, release),
-        "PROFILES": get_profiles_for_project(project),
-        "DIST_PACKAGES": get_dist_packages_for_project(project),
-        "PIP_PACKAGES": get_pip_packages_for_project(project),
+        "PROFILES": PROFILES.get(project, ""),
+        "DIST_PACKAGES": DIST_PACKAGES.get(project, ""),
+        "PIP_PACKAGES": PIP_PACKAGES.get(project, ""),
     }
 
 
diff --git a/images/openstack/projects/cinder/profiles b/images/openstack/projects/cinder/profiles
deleted file mode 100644
index 8f01a6e..0000000
--- a/images/openstack/projects/cinder/profiles
+++ /dev/null
@@ -1 +0,0 @@
-ceph qemu
diff --git a/images/openstack/projects/designate/dist-packages b/images/openstack/projects/designate/dist-packages
deleted file mode 100644
index ed4a9d8..0000000
--- a/images/openstack/projects/designate/dist-packages
+++ /dev/null
@@ -1 +0,0 @@
-bind9utils
diff --git a/images/openstack/projects/glance/profiles b/images/openstack/projects/glance/profiles
deleted file mode 100644
index 06b72b2..0000000
--- a/images/openstack/projects/glance/profiles
+++ /dev/null
@@ -1 +0,0 @@
-ceph
diff --git a/images/openstack/projects/heat/dist-packages b/images/openstack/projects/heat/dist-packages
deleted file mode 100644
index 13368f8..0000000
--- a/images/openstack/projects/heat/dist-packages
+++ /dev/null
@@ -1 +0,0 @@
-curl
diff --git a/images/openstack/projects/horizon/pip-packages b/images/openstack/projects/horizon/pip-packages
deleted file mode 100644
index 371088f..0000000
--- a/images/openstack/projects/horizon/pip-packages
+++ /dev/null
@@ -1 +0,0 @@
-designate-dashboard heat-dashboard ironic-ui magnum-ui neutron-vpnaas-dashboard octavia-dashboard senlin-dashboard monasca-ui
diff --git a/images/openstack/projects/horizon/profiles b/images/openstack/projects/horizon/profiles
deleted file mode 100644
index a6b6519..0000000
--- a/images/openstack/projects/horizon/profiles
+++ /dev/null
@@ -1 +0,0 @@
-apache
diff --git a/images/openstack/projects/ironic/dist-packages b/images/openstack/projects/ironic/dist-packages
deleted file mode 100644
index b2e234b..0000000
--- a/images/openstack/projects/ironic/dist-packages
+++ /dev/null
@@ -1 +0,0 @@
-ethtool lshw iproute2
diff --git a/images/openstack/projects/ironic/pip-packages b/images/openstack/projects/ironic/pip-packages
deleted file mode 100644
index 38a3197..0000000
--- a/images/openstack/projects/ironic/pip-packages
+++ /dev/null
@@ -1 +0,0 @@
-python-dracclient sushy
diff --git a/images/openstack/projects/ironic/profiles b/images/openstack/projects/ironic/profiles
deleted file mode 100644
index afa6dd3..0000000
--- a/images/openstack/projects/ironic/profiles
+++ /dev/null
@@ -1 +0,0 @@
-ipxe ipmi qemu tftp
diff --git a/images/openstack/projects/keystone/profiles b/images/openstack/projects/keystone/profiles
deleted file mode 100644
index a17f9a0..0000000
--- a/images/openstack/projects/keystone/profiles
+++ /dev/null
@@ -1 +0,0 @@
-apache ldap openidc
diff --git a/images/openstack/projects/monasca-agent/dist-packages b/images/openstack/projects/monasca-agent/dist-packages
deleted file mode 100644
index 0c67790..0000000
--- a/images/openstack/projects/monasca-agent/dist-packages
+++ /dev/null
@@ -1 +0,0 @@
-iproute2 libvirt-clients lshw
diff --git a/images/openstack/projects/monasca-agent/pip-packages b/images/openstack/projects/monasca-agent/pip-packages
deleted file mode 100644
index cf0b63a..0000000
--- a/images/openstack/projects/monasca-agent/pip-packages
+++ /dev/null
@@ -1 +0,0 @@
-libvirt-python python-glanceclient python-neutronclient python-novaclient py3nvml
diff --git a/images/openstack/projects/monasca-api/profiles b/images/openstack/projects/monasca-api/profiles
deleted file mode 100644
index b55b685..0000000
--- a/images/openstack/projects/monasca-api/profiles
+++ /dev/null
@@ -1 +0,0 @@
-apache influxdb
diff --git a/images/openstack/projects/monasca-persister/profiles b/images/openstack/projects/monasca-persister/profiles
deleted file mode 100644
index 30775bb..0000000
--- a/images/openstack/projects/monasca-persister/profiles
+++ /dev/null
@@ -1 +0,0 @@
-influxdb
diff --git a/images/openstack/projects/neutron/dist-packages b/images/openstack/projects/neutron/dist-packages
deleted file mode 100644
index ec326ff..0000000
--- a/images/openstack/projects/neutron/dist-packages
+++ /dev/null
@@ -1 +0,0 @@
-jq ethtool lshw
diff --git a/images/openstack/projects/neutron/pip-packages b/images/openstack/projects/neutron/pip-packages
deleted file mode 100644
index bedb2f5..0000000
--- a/images/openstack/projects/neutron/pip-packages
+++ /dev/null
@@ -1 +0,0 @@
-neutron-vpnaas
diff --git a/images/openstack/projects/neutron/profiles b/images/openstack/projects/neutron/profiles
deleted file mode 100644
index 8a0345d..0000000
--- a/images/openstack/projects/neutron/profiles
+++ /dev/null
@@ -1 +0,0 @@
-openvswitch vpn
diff --git a/images/openstack/projects/nova/dist-packages b/images/openstack/projects/nova/dist-packages
deleted file mode 100644
index 658f1b2..0000000
--- a/images/openstack/projects/nova/dist-packages
+++ /dev/null
@@ -1 +0,0 @@
-ovmf qemu-efi-aarch64
diff --git a/images/openstack/projects/nova/profiles b/images/openstack/projects/nova/profiles
deleted file mode 100644
index 919c309..0000000
--- a/images/openstack/projects/nova/profiles
+++ /dev/null
@@ -1 +0,0 @@
-ceph openvswitch configdrive qemu migration
diff --git a/images/openstack/projects/placement/pip-packages b/images/openstack/projects/placement/pip-packages
deleted file mode 100644
index fb881ec..0000000
--- a/images/openstack/projects/placement/pip-packages
+++ /dev/null
@@ -1 +0,0 @@
-httplib2
diff --git a/images/openstack/projects/placement/profiles b/images/openstack/projects/placement/profiles
deleted file mode 100644
index a6b6519..0000000
--- a/images/openstack/projects/placement/profiles
+++ /dev/null
@@ -1 +0,0 @@
-apache