Files
ansible-role-www/tests/render.yml
T
2026-10-26 20:33:41 -04:00

62 lines
3.5 KiB
YAML
Executable File

---
- name: Render membership manifests without contacting a cluster
hosts: localhost
connection: local
gather_facts: false
vars:
role_path: /roles/ansible-role-www
tasks:
- name: Load role defaults
ansible.builtin.include_vars: ../defaults/main.yml
- name: Supply nonsecret fixture settings
ansible.builtin.set_fact:
www_membership_image: registry.example.org/www-membership:release-test
_www_membership_revision: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
www_membership_environment: "{{ www_membership_environment | combine({'MEMBERSHIP_PUBLIC_URL': 'https://' ~ www_hostname, 'LDAP_BIND_DN': 'cn=membership,dc=example,dc=org', 'LDAP_PASSWORD_SCHEME': '{ARGON2}', 'EMAIL_HOST': 'smtp.example.org', 'STRIPE_PORTAL_CONFIGURATION': 'bpc_test'}) }}"
- name: Render Apache proxy fixture
ansible.builtin.set_fact:
_www_proxy_config: "{{ lookup('ansible.builtin.template', role_path ~ '/templates/membership-httpd.conf.j2') }}"
- name: Write Apache fixture for container syntax tests
ansible.builtin.template:
src: ../templates/membership-httpd.conf.j2
dest: /tmp/www-test-membership.conf
mode: "0600"
- name: Render standard deployment variants
ansible.builtin.template:
src: "../templates/{{ item }}.yml.j2"
dest: "/tmp/www-test-{{ item }}.yml"
mode: "0600"
loop: [website, membership-config, membership-postgres, membership-migrate, membership-workloads]
- name: Enable explicit plaintext LDAP fixture
ansible.builtin.set_fact:
www_membership_environment: "{{ www_membership_environment | combine({'LDAP_URL': 'ldap://openldap.openldap.svc.cluster.local:389', 'LDAP_ALLOW_INSECURE': '1'}) }}"
- name: Render plaintext LDAP configuration
ansible.builtin.template:
src: ../templates/membership-config.yml.j2
dest: /tmp/www-test-plaintext-membership-config.yml
mode: "0600"
- name: Enable optional external database and private CA fixture
ansible.builtin.set_fact:
www_membership_postgres_managed: false
www_membership_ca_secret_name: private-ca
www_image_pull_secrets: [{name: registry-pull}]
www_membership_environment: "{{ www_membership_environment | combine({'LDAP_URL': 'ldaps://ldap.example.com', 'LDAP_ALLOW_INSECURE': '0', 'POSTGRES_HOST': 'postgres.example.org', 'POSTGRES_SSLMODE': 'verify-full', 'PGSSLROOTCERT': '/etc/membership/ca/db.pem', 'LDAP_CA_CERT_FILE': '/etc/membership/ca/ldap.pem', 'SHKEEPER_URL': 'https://crypto.example.org', 'SHKEEPER_CURRENCIES': 'BTC,XMR', 'SHKEEPER_CA_CERT_FILE': '/etc/membership/ca/shkeeper.pem'}) }}"
- name: Render external provider variants
ansible.builtin.template:
src: "../templates/{{ item }}.yml.j2"
dest: "/tmp/www-test-external-{{ item }}.yml"
mode: "0600"
loop: [membership-config, membership-workloads, membership-migrate]
- name: Render disabled membership proxy variant
ansible.builtin.set_fact:
www_membership_enabled: false
www_onion_enabled: false
- name: Render disabled Apache fixture
ansible.builtin.set_fact:
_www_proxy_config: "{{ lookup('ansible.builtin.template', role_path ~ '/templates/membership-httpd.conf.j2') }}"
- name: Render disabled website
ansible.builtin.template:
src: ../templates/website.yml.j2
dest: /tmp/www-test-disabled-website.yml
mode: "0600"