Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge pull request #78358 from serokell/yorickvp/alertmanager-secret #78358

Merged
merged 2 commits into from Jan 24, 2020

Conversation

yorickvP
Copy link
Contributor

Motivation for this change

Alertmanager has secret inputs, like mail passwords. Let's use envsubst to substitute environment variables into the yaml config.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

Copy link
Member

@infinisil infinisil left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good!

@infinisil infinisil changed the title nixos/alertmanager: add environmentFile, envsubst for secrets Merge pull request #78358 from serokell/yorickvp/alertmanager-secret Jan 24, 2020
@infinisil infinisil merged commit 342bc51 into NixOS:master Jan 24, 2020
@@ -127,6 +127,18 @@ in {
Extra commandline options when launching the Alertmanager.
'';
};

environmentFile = mkOption {
type = types.nullOr types.path;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are there concerns around this being added to the store?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I checked, it won't be added to the store even when set with environmentFile = ./local/file due to how systemd.services.*.serviceConfig is implemented.

@@ -144,9 +156,14 @@ in {
systemd.services.alertmanager = {
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
preStart = ''
${lib.getBin pkgs.envsubst}/bin/envsubst -o /tmp/alert-manager-substituted.yaml" \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might want to set a umask here, and also below explicitly enable PrivateTmp instead of depending on the implied PrivateTemp.

dtzWill pushed a commit to dtzWill/nixpkgs that referenced this pull request Jan 24, 2020
…cret

nixos/alertmanager: add environmentFile, envsubst for secrets

(cherry picked from commit 342bc51)
@yorickvP yorickvP deleted the yorickvp/alertmanager-secret branch January 25, 2020 16:31
@ghost ghost mentioned this pull request Jan 27, 2020
10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants