Treat omitted host_apps.enabled as true so deploy works (#35).
Sync runner checkout / sync (pull_request) Successful in 7s
Sync runner checkout / sync (pull_request) Successful in 7s
rejectattr('enabled') raised on every row that omitted the key, which
blocked all app deploys after #33 — including url_shortening_service.
This commit is contained in:
+2
-1
@@ -250,7 +250,8 @@ a DB.
|
|||||||
Optional `compose_profiles: [worker]` activates docker compose profiles on that
|
Optional `compose_profiles: [worker]` activates docker compose profiles on that
|
||||||
host only (used for `monica_site` / `college_craft` / `print_forge` dj-queue singleton on adama).
|
host only (used for `monica_site` / `college_craft` / `print_forge` dj-queue singleton on adama).
|
||||||
Optional `enabled: false` skips deploy (CI included) but keeps the row for ports
|
Optional `enabled: false` skips deploy (CI included) but keeps the row for ports
|
||||||
and `stop.sh`. Omit the key (or `true`) to deploy as before.
|
and `stop.sh`. Omit the key (or `true`) to deploy as before. Do not use Jinja
|
||||||
|
`rejectattr('enabled')` — missing key is an error, not "enabled".
|
||||||
- Django app = one compose project per env: project name `<app>_<env>`, host port from `host_apps`.
|
- Django app = one compose project per env: project name `<app>_<env>`, host port from `host_apps`.
|
||||||
Ports match across app hosts so NPM can balance `adama:PORT` + `roslin:PORT` + `starbuck:PORT` + `apollo:PORT`.
|
Ports match across app hosts so NPM can balance `adama:PORT` + `roslin:PORT` + `starbuck:PORT` + `apollo:PORT`.
|
||||||
|
|
||||||
|
|||||||
@@ -35,14 +35,24 @@
|
|||||||
- app_env is defined
|
- app_env is defined
|
||||||
- matching_host_apps | length == 0
|
- matching_host_apps | length == 0
|
||||||
|
|
||||||
|
# rejectattr('enabled', …) raises when the key is omitted. Omit = enabled (#35).
|
||||||
|
- name: Reset deploy targets
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
deploy_targets: []
|
||||||
|
|
||||||
- name: "Drop disabled host_apps (enabled: false)"
|
- name: "Drop disabled host_apps (enabled: false)"
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
deploy_targets: "{{ matching_host_apps | rejectattr('enabled', 'equalto', false) | list }}"
|
deploy_targets: "{{ deploy_targets + [item] }}"
|
||||||
|
loop: "{{ matching_host_apps }}"
|
||||||
|
when: item.enabled | default(true)
|
||||||
|
loop_control:
|
||||||
|
label: "{{ item.name }}/{{ item.env }}"
|
||||||
|
|
||||||
- name: Show skipped disabled apps
|
- name: Show skipped disabled apps
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
msg: "skip disabled {{ item.name }}/{{ item.env }} on {{ inventory_hostname }}"
|
msg: "skip disabled {{ item.name }}/{{ item.env }} on {{ inventory_hostname }}"
|
||||||
loop: "{{ matching_host_apps | selectattr('enabled', 'equalto', false) | list }}"
|
loop: "{{ matching_host_apps }}"
|
||||||
|
when: not (item.enabled | default(true))
|
||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.name }}/{{ item.env }}"
|
label: "{{ item.name }}/{{ item.env }}"
|
||||||
|
|
||||||
|
|||||||
@@ -6,9 +6,20 @@
|
|||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
_node_names: "{{ app_catalog | dict2items | selectattr('value.type', 'equalto', 'node-static') | map(attribute='key') | list }}"
|
_node_names: "{{ app_catalog | dict2items | selectattr('value.type', 'equalto', 'node-static') | map(attribute='key') | list }}"
|
||||||
|
|
||||||
|
# rejectattr('enabled', …) raises when the key is omitted. Omit = enabled (#35).
|
||||||
|
- name: web-static | reset static apps
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
_static_apps: []
|
||||||
|
|
||||||
- name: web-static | this host's static apps
|
- name: web-static | this host's static apps
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
_static_apps: "{{ host_apps | default([]) | rejectattr('enabled', 'equalto', false) | selectattr('name', 'in', _node_names) | list }}"
|
_static_apps: "{{ _static_apps + [item] }}"
|
||||||
|
loop: "{{ host_apps | default([]) }}"
|
||||||
|
when:
|
||||||
|
- item.name in _node_names
|
||||||
|
- item.enabled | default(true)
|
||||||
|
loop_control:
|
||||||
|
label: "{{ item.name }}/{{ item.env }}"
|
||||||
|
|
||||||
- name: web-static | configure and run
|
- name: web-static | configure and run
|
||||||
when: _static_apps | length > 0
|
when: _static_apps | length > 0
|
||||||
|
|||||||
Reference in New Issue
Block a user