Composed ACME_ROOTS unconditionally from ${bound:acme-ca:roots} even when that field is empty — public-acme's own case, where an empty roots means "the system trust store", not "fetch from the bare authority host". The run-once step wget'd https://acme-v02.api.letsencrypt.org:443 (host, no path) for two minutes every apply and failed, blocking every resource after it — found live tonight, assigning route-proxy for the first time.
Carries the raw, uncomposed roots value alongside the composed URL (ACME_ROOTS_PATH) so the step can tell "nothing to fetch" apart from "the authority didn't answer". Empty copies the image's own system CA bundle to /ca/root.crt instead of fetching one, so ACME_CA_BUNDLE stays the one path it has always been rather than needing to become conditional itself.
Composed `ACME_ROOTS` unconditionally from `${bound:acme-ca:roots}` even when that field is empty — `public-acme`'s own case, where an empty roots means "the system trust store", not "fetch from the bare authority host". The run-once step `wget`'d `https://acme-v02.api.letsencrypt.org:443` (host, no path) for two minutes every apply and failed, blocking every resource after it — found live tonight, assigning route-proxy for the first time.
Carries the raw, uncomposed roots value alongside the composed URL (`ACME_ROOTS_PATH`) so the step can tell "nothing to fetch" apart from "the authority didn't answer". Empty copies the image's own system CA bundle to `/ca/root.crt` instead of fetching one, so `ACME_CA_BUNDLE` stays the one path it has always been rather than needing to become conditional itself.
Composed ACME_ROOTS unconditionally from ${bound:acme-ca:roots} even when
that field is empty — public-acme's own case, where an empty roots means
'the system trust store', not 'fetch from the bare authority host'. The
run-once step wget'd https://acme-v02.api.letsencrypt.org:443 (host, no
path) for two minutes every apply and failed, blocking every resource
after it — found live tonight, assigning route-proxy for the first time.
Carries the raw, uncomposed roots value alongside the composed URL
(ACME_ROOTS_PATH) so the step can tell 'nothing to fetch' apart from 'the
authority didn't answer' — a distinction the composed URL alone cannot
make. Empty copies the image's own system CA bundle to /ca/root.crt
instead of fetching one, so ACME_CA_BUNDLE stays the one path it has
always been rather than needing to become conditional itself.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Composed
ACME_ROOTSunconditionally from${bound:acme-ca:roots}even when that field is empty —public-acme's own case, where an empty roots means "the system trust store", not "fetch from the bare authority host". The run-once stepwget'dhttps://acme-v02.api.letsencrypt.org:443(host, no path) for two minutes every apply and failed, blocking every resource after it — found live tonight, assigning route-proxy for the first time.Carries the raw, uncomposed roots value alongside the composed URL (
ACME_ROOTS_PATH) so the step can tell "nothing to fetch" apart from "the authority didn't answer". Empty copies the image's own system CA bundle to/ca/root.crtinstead of fetching one, soACME_CA_BUNDLEstays the one path it has always been rather than needing to become conditional itself.Composed ACME_ROOTS unconditionally from ${bound:acme-ca:roots} even when that field is empty — public-acme's own case, where an empty roots means 'the system trust store', not 'fetch from the bare authority host'. The run-once step wget'd https://acme-v02.api.letsencrypt.org:443 (host, no path) for two minutes every apply and failed, blocking every resource after it — found live tonight, assigning route-proxy for the first time. Carries the raw, uncomposed roots value alongside the composed URL (ACME_ROOTS_PATH) so the step can tell 'nothing to fetch' apart from 'the authority didn't answer' — a distinction the composed URL alone cannot make. Empty copies the image's own system CA bundle to /ca/root.crt instead of fetching one, so ACME_CA_BUNDLE stays the one path it has always been rather than needing to become conditional itself.