Skip to content

CI has never been green; current blocker is a duplicate Package[certbot] in profiles::grafana catalogs #203

Description

@miharp

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:

  1. 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.
  2. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions