]> Andreas Glashauser | Gitweb - salt-qubes.git/commitdiff
ADDED: states for setting up an element matrix client
authorAndreas Glashauser <ag@andreasglashauser.com>
Sun, 6 Apr 2025 20:17:06 +0000 (22:17 +0200)
committerAndreas Glashauser <ag@andreasglashauser.com>
Sun, 6 Apr 2025 20:17:06 +0000 (22:17 +0200)
element/element--configure-package-manager.sls [new file with mode: 0644]
element/element--create-qube.sls [new file with mode: 0644]
element/element--create-template.sls [new file with mode: 0644]
element/element--install-packages.sls [new file with mode: 0644]
element/files/element-io-archive-keyring.gpg [new file with mode: 0644]
element/init.sls [new file with mode: 0644]

diff --git a/element/element--configure-package-manager.sls b/element/element--configure-package-manager.sls
new file mode 100644 (file)
index 0000000..73900f9
--- /dev/null
@@ -0,0 +1,20 @@
+{% if grains['id'] == 'template-element' %}
+
+element--gpg-key:
+  file.managed:
+    - name: /usr/share/keyrings/element-io-archive-keyring.gpg
+    - source: salt://element/files/element-io-archive-keyring.gpg
+    - user: root
+    - group: root
+    - mode: 644
+
+element--apt-repo:
+  pkgrepo.managed:
+    - name: deb [arch=amd64 signed-by=/usr/share/keyrings/element-io-archive-keyring.gpg] https://packages.element.io/debian default main
+    - humanname: Element Repository
+    - file: /etc/apt/sources.list.d/element-io.list
+    - refresh: True
+    - require:
+      - file: element--gpg-key
+
+{% endif %}
diff --git a/element/element--create-qube.sls b/element/element--create-qube.sls
new file mode 100644 (file)
index 0000000..6ab44a1
--- /dev/null
@@ -0,0 +1,20 @@
+{% if grains['id'] == 'dom0' %}
+
+element--create-qube:
+  qvm.vm:
+    - name: q-element
+    - present:
+      - template: template-element
+      - label: yellow
+    - prefs:
+      - label: yellow
+      - audiovm: sys-audio
+      - guivm: dom0
+      - netvm: sys-vpn-mullvad
+    - features:
+      - set:
+        - menu-items: element-desktop.desktop
+    - require:
+      - qvm: element--create-template
+
+{% endif %}
diff --git a/element/element--create-template.sls b/element/element--create-template.sls
new file mode 100644 (file)
index 0000000..470fb70
--- /dev/null
@@ -0,0 +1,26 @@
+{% import "templates/versions.jinja" as version %}
+
+include:
+  - templates.templates--install-debian-minimal
+
+{% if grains['id'] == 'dom0' %}
+
+element--create-template:
+  qvm.clone:
+    - name: template-element
+    - source: debian-{{ version.debian }}-minimal
+    - class: TemplateVM
+    - require:
+      - qvm: templates--install-debian-{{ version.debian }}-minimal
+
+element--create-template-prefs:
+  qvm.prefs:
+    - name: template-element
+    - label: yellow
+    - audiovm:
+    - guivm:
+    - netvm:
+    - require:
+      - qvm: element--create-template
+
+{% endif %}
diff --git a/element/element--install-packages.sls b/element/element--install-packages.sls
new file mode 100644 (file)
index 0000000..a860f22
--- /dev/null
@@ -0,0 +1,13 @@
+{% if grains['id'] == 'template-element' %}
+
+element--install-packages:
+  pkg.installed:
+    - refresh: True
+    - pkgs:
+      - qubes-core-agent-networking
+      - qubes-app-shutdown-idle
+      - element-desktop
+    - require:
+      - pkgrepo: element--apt-repo
+
+{% endif %}
diff --git a/element/files/element-io-archive-keyring.gpg b/element/files/element-io-archive-keyring.gpg
new file mode 100644 (file)
index 0000000..3a61810
Binary files /dev/null and b/element/files/element-io-archive-keyring.gpg differ
diff --git a/element/init.sls b/element/init.sls
new file mode 100644 (file)
index 0000000..6792d3c
--- /dev/null
@@ -0,0 +1,5 @@
+include:
+  - element.element--create-template
+  - element.element--configure-package-manager
+  - element.element--install-packages
+  - element.element--create-qube