Model the build on mozimo and target emily
- Makefile: PLATFORMS, tags :<commit> and :main, build-check with --pull. - deploy.sh: push, guards, git pull --ff-only, optional --prune, image_tag. - Replace .containerignore with .dockerignore. - Add the opt-in image prune to the hops role. - Tag the Caddyfile task so --skip-tags caddy works before DNS cutover. - Trim comments and rewrite build and deploy text in plain prose.
This commit is contained in:
1 parent
7366596a87
commit
a7c9324170
14 files changed
+194
-357
No files matched your search
+7
-23
@@ -1,18 +1,7 @@
|
||||
---
|
||||
# Hops n Grains — rootless Podman + Quadlet, behind the fleet's shared Caddy
|
||||
# unit (caddy/playbook.yml in the ansible-playbooks repo).
|
||||
#
|
||||
# Connects as the container user and runs everything as that user: the Quadlet
|
||||
# units belong to it, so the connection's PAM session is what makes
|
||||
# `systemctl --user` and `podman exec` work without any environment juggling.
|
||||
# There is deliberately no `become`: root-only prerequisites (Podman,
|
||||
# `loginctl enable-linger`, the low-port sysctl Caddy needs) belong to
|
||||
# caddy/playbook.yml, which must have run on this host first.
|
||||
#
|
||||
# gather_facts is required: podman_user, podman_data_dir and quadlet_dir are
|
||||
# derived from the user_id / user_dir facts.
|
||||
#
|
||||
# Run with: ansible-playbook -u tanshu playbook.yml
|
||||
# Hops n Grains as a rootless Podman Quadlet on emily, behind the shared Caddy.
|
||||
# Run: ansible-playbook playbook.yml -e image_tag=<commit>
|
||||
# Use --skip-tags caddy until DNS for hopsngrains.com points at emily.
|
||||
- name: Deploy Hops n Grains as a rootless Podman Quadlet
|
||||
hosts: emily
|
||||
gather_facts: true
|
||||
@@ -20,17 +9,12 @@
|
||||
- vars/default.yml
|
||||
|
||||
pre_tasks:
|
||||
# This must happen before the app unit is started, not after: the generated
|
||||
# hops.container references {{ network_name }}.network, and Quadlet fails
|
||||
# *unit generation* (so `systemctl --user start` reports "unit not found")
|
||||
# when a referenced .network file does not exist yet. The same include
|
||||
# writes the drop-in that attaches the shared Caddy unit to this network,
|
||||
# which is what makes `hops` resolvable to Caddy.
|
||||
- name: Register Hops n Grains' network with Caddy
|
||||
# Quadlet fails unit generation when hops.network is missing, so write the
|
||||
# network and the Caddy drop-in before the app unit starts.
|
||||
- name: Register the Hops n Grains network with Caddy
|
||||
ansible.builtin.include_tasks: "{{ playbook_dir }}/roles/register/tasks/main.yaml"
|
||||
|
||||
roles:
|
||||
# The app: data directory, .env, the Quadlet unit, start + healthcheck.
|
||||
- hops
|
||||
# Appends this site's blocks to the shared Caddyfile and reloads Caddy.
|
||||
# The Caddyfile task is tagged caddy. Skip it until DNS points here.
|
||||
- caddy
|
||||
Reference in new issue
Block a user