diff options
author | Christian Pointner <equinox@spreadspace.org> | 2024-08-25 23:03:52 +0200 |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2024-08-25 23:03:52 +0200 |
commit | fa5bacba97c0c9513dcdbb24b5464157184c4ee1 (patch) | |
tree | 3681bf971131faae1a4a0e9bc515e3df12e055d6 /roles/apps/collabora/code/instance/tasks | |
parent | collabora/code: remove legacy file naming (lool vs cool) (diff) |
collabora/code: move to new-style app layout and generic storage config
Diffstat (limited to 'roles/apps/collabora/code/instance/tasks')
-rw-r--r-- | roles/apps/collabora/code/instance/tasks/custom-image.yml | 24 | ||||
-rw-r--r-- | roles/apps/collabora/code/instance/tasks/main.yml | 54 |
2 files changed, 78 insertions, 0 deletions
diff --git a/roles/apps/collabora/code/instance/tasks/custom-image.yml b/roles/apps/collabora/code/instance/tasks/custom-image.yml new file mode 100644 index 00000000..212fff36 --- /dev/null +++ b/roles/apps/collabora/code/instance/tasks/custom-image.yml @@ -0,0 +1,24 @@ +--- +- name: create build directory for custom image + file: + path: "{{ collabora_code_instance_basepath }}/build" + state: directory + +- name: generate Dockerfile for custom image + copy: + content: | + FROM {{ collabora_code_instances[collabora_code_instance].custom_image.from | default('collabora/code:' + collabora_code_instances[collabora_code_instance].version) }} + {{ collabora_code_instances[collabora_code_instance].custom_image.dockerfile }} + dest: "{{ collabora_code_instance_basepath }}/build/Dockerfile" + register: collabora_code_custom_image_docker + +- name: build custom image + docker_image: + name: "collabora/code/{{ collabora_code_instance }}:{{ collabora_code_instances[collabora_code_instance].version }}" + state: present + force_source: "{{ collabora_code_custom_image_docker is changed }}" + source: build + build: + path: "{{ collabora_code_instance_basepath }}/build" + network: host + pull: yes diff --git a/roles/apps/collabora/code/instance/tasks/main.yml b/roles/apps/collabora/code/instance/tasks/main.yml new file mode 100644 index 00000000..eed473a0 --- /dev/null +++ b/roles/apps/collabora/code/instance/tasks/main.yml @@ -0,0 +1,54 @@ +--- +- name: prepare storage volume + vars: + storage_volume: "{{ collabora_code_instances[collabora_code_instance].storage }}" + include_role: + name: "storage/{{ collabora_code_instances[collabora_code_instance].storage.type }}/volume" + +- set_fact: + collabora_code_instance_basepath: "{{ storage_volume_mountpoint }}" + +- name: create instance config directory + file: + path: "{{ collabora_code_instance_basepath }}/config" + state: directory + mode: 0750 + +- name: generate configuration file + template: + src: "config/coolwsd.{{ collabora_code_instances[collabora_code_instance].version }}.xml.j2" + dest: "{{ collabora_code_instance_basepath }}/config/coolwsd.xml" + +- name: build custom image + when: "'custom_image' in collabora_code_instances[collabora_code_instance]" + include_tasks: custom-image.yml + +- name: install pod manifest + vars: + kubernetes_standalone_pod: + name: "collabora-code-{{ collabora_code_instance }}" + spec: "{{ lookup('template', 'pod-spec.yml.j2') }}" + mode: "0600" + config_hash_items: + - path: "{{ collabora_code_instance_basepath }}/config/coolwsd.xml" + properties: + - checksum + include_role: + name: kubernetes/standalone/pod + +- name: render nginx-vhost custom config + set_fact: + collabora_code_nginx_vhost_custom: "{{ lookup('template', 'nginx-vhost.conf.j2') }}" + +- name: configure nginx vhost + vars: + nginx_vhost: + name: "collabora-code-{{ collabora_code_instance }}" + template: generic + tls: + certificate_provider: "{{ acme_client }}" + hostnames: + - "{{ collabora_code_instances[collabora_code_instance].hostname }}" + custom: "{{ collabora_code_nginx_vhost_custom }}" + include_role: + name: nginx/vhost |