You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Every pull request CI run currently fails in the unit-test job with:
Cannot alias Package[certbot] to [nil, "certbot", nil]
(profiles/manifests/certbot.pp, line 6);
resource already declared (letsencrypt/manifests/install.pp, line 16)
All 14 failures are profiles::grafana examples. The chain:
26d19db (2026-03-16, "configure tls") added include profiles::lets_encrypt to profiles::nginx
profiles::lets_encrypt declares class { 'letsencrypt': }, whose install class declares Package['letsencrypt'] with name => 'certbot'
profiles::grafana does require profiles::nginx and require profiles::certbot, and profiles::certbot declares Package['certbot']
Two packages resolving to the same name is a compile error, so every catalog containing both profiles has been uncompilable since March. Renovate PR runs confirm the timeline: identical failure signature on 2026-07-28, 08-06, 08-07, 08-08 (and the red CI on #153 in April was this, not the PR).
I verified it is not fixture drift: the spec fails identically with the letsencrypt fixture checked out at the Puppetfile pin (v13.3.0). The conflict is real in the manifests.
Two questions this raises:
Does grafana.voxpupu.li still apply cleanly? If its role composes these same profiles, the node has been failing agent runs since March, not just CI.
Is profiles::certbot still needed? The letsencrypt module manages the package itself now. Setup Matrix Synapse (continues #153) #202 hit this exact collision in the matrix role and fixed it by dropping the profiles::certbot include; the same one-line fix likely applies to profiles::grafana (the certbot.timer management in profiles::certbot would need a home, or the letsencrypt module's renewal handling replaces it).
Happy to PR the fix, but it touches the grafana node so I wanted eyes on question 1 first.
Found while working on #202. Investigated with Claude (Claude Code), per the AI usage policy.
Every pull request CI run currently fails in the unit-test job with:
All 14 failures are
profiles::grafanaexamples. The chain:include profiles::lets_encrypttoprofiles::nginxprofiles::lets_encryptdeclaresclass { 'letsencrypt': }, whose install class declaresPackage['letsencrypt']withname => 'certbot'profiles::grafanadoesrequire profiles::nginxandrequire profiles::certbot, andprofiles::certbotdeclaresPackage['certbot']Two packages resolving to the same name is a compile error, so every catalog containing both profiles has been uncompilable since March. Renovate PR runs confirm the timeline: identical failure signature on 2026-07-28, 08-06, 08-07, 08-08 (and the red CI on #153 in April was this, not the PR).
I verified it is not fixture drift: the spec fails identically with the letsencrypt fixture checked out at the Puppetfile pin (v13.3.0). The conflict is real in the manifests.
Two questions this raises:
profiles::certbotstill needed? The letsencrypt module manages the package itself now. Setup Matrix Synapse (continues #153) #202 hit this exact collision in the matrix role and fixed it by dropping theprofiles::certbotinclude; the same one-line fix likely applies toprofiles::grafana(the certbot.timer management in profiles::certbot would need a home, or the letsencrypt module's renewal handling replaces it).Happy to PR the fix, but it touches the grafana node so I wanted eyes on question 1 first.
Found while working on #202. Investigated with Claude (Claude Code), per the AI usage policy.