Skip to content

make up on a clean clone silently mounts directories where the TLS files should be #69

Description

@Gerrrt

README.md:152-158 quick start:

make secrets-init
make secrets-edit
make validate
make up

make certs is not in that list, and certificates/ is gitignored
(.gitignore:25), so a clean clone has no CA and no leaf. compose.yaml
bind-mounts three files out of it:

  • ../../certificates/ca.pem → Prometheus, for verifying Grafana's TLS
  • ../../certificates/grafana.matrix.elysium.pem → Grafana's cert
  • ../../certificates/grafana.matrix.elysium-key.pem → Grafana's key

Docker does not fail on a missing bind-mount source — it creates a
directory
. So Prometheus gets a directory where ca_file should be, Grafana
gets directories for its cert and key, and the failure surfaces as a TLS error
inside a container rather than as "you skipped a step".

Nothing checks. make up, render-config.sh and validate.sh all proceed —
which is notable given compose.yaml:65-69 and :135-138 make RENDER_UID and
RENDER_GID required rather than defaulted, precisely because a silent
fallback there once left snmp-exporter crash-looping for two weeks.

Fix

Two parts, and the second matters more:

  • Add make certs to the quick start, and to docs/runbooks/deploy-stack.md.
  • Have render-config.sh refuse to render when the three files are absent, with
    a message naming make certs. That is the same guard pattern the UID/GID
    variables already use, and it is the one that survives someone not reading the
    README.

Found while verifying #12.

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

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions