[Nix-dev] NixOps - merge config files
Tomasz Czyż
tomasz.czyz at gmail.com
Thu Jun 9 12:23:31 CEST 2016
Probably some function from
https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix could be
useful to merge them.
2016-06-09 11:19 GMT+01:00 zimbatm <zimbatm at zimbatm.com>:
> @dario: that doesn’t work recursively. { a = { x = 3; } } // { a = { y =
> 4; } produces { a = { y = 4 }; }
>
>
> On Thu, 9 Jun 2016 at 10:44 Dario Bertini <berdario at gmail.com> wrote:
>
>> {a=1;}// {b=2;}
>> Yields
>> {a=1; b=2;}
>>
>> Is this enough to help you?
>>
>> On 9 June 2016 10:31:07 BST, 4levels <4levels at gmail.com> wrote:
>> >Hi,
>> >
>> >thank you for your swift reply!
>> >I'd like to avoid to literally mention all sensitive config params in
>> >the
>> >network.nix config.
>> >
>> >What would be the "normal" procedure to recursively merge 2 attribute
>> >sets?
>> >
>> >
>> >So if I have in one file
>> >servers.nix: {
>> > vm01 = {
>> > services.symfony.platforms = {
>> > database = {
>> > username = "www";
>> > };
>> > };
>> > };
>> >}
>> >
>> >and in the other
>> >keys.nix: {
>> > vm01 = {
>> > services.symfony.platforms = {
>> > database = {
>> > password = "12345678";
>> > };
>> > };
>> > };
>> >}
>> >
>> >So they become one when building:
>> >{
>> > vm01 = {
>> > services.symfony.platforms = {
>> > database = {
>> > username = "www";
>> > password = "12345678";
>> > };
>> > };
>> > };
>> >}
>> >
>> >Kind regards,
>> >
>> >Erik
>> >
>> >On Thu, Jun 9, 2016 at 11:23 AM zimbatm <zimbatm at zimbatm.com> wrote:
>> >
>> >> Hi,
>> >>
>> >> I don’t know where you are getting this error. All I can do is
>> >suggest a
>> >> workaround:
>> >>
>> >> In keys.nix:
>> >>
>> >> {
>> >> database_password = "12345678";
>> >> }
>> >>
>> >> In network.nix:
>> >>
>> >> let
>> >> secrets = import ./keys.nix {};in;
>> >> {
>> >> vm01 = {
>> >> { config, pkgs, ... }:
>> >> {
>> >> services.symfony.platforms.database.password =
>> >secrets.database_password;
>> >>
>> >> ..
>> >> }
>> >> }
>> >> }
>> >>
>> >>
>> >>
>> >> On Thu, 9 Jun 2016 at 07:54 4levels <4levels at gmail.com> wrote:
>> >>
>> >>> Hi Nix Devs,
>> >>>
>> >>> I'm having some difficulties separating sensitive information from a
>> >nix
>> >>> expression used by NixOps.
>> >>>
>> >>> I keep the server config in a separate file, servers.nix:
>> >>> {
>> >>> vm01 =
>> >>> { config, pkgs, nodes, ... }:
>> >>> {
>> >>> deployment = {
>> >>> targetHost = "192.168.121.50";
>> >>> };
>> >>> ...
>> >>> }
>> >>> }
>> >>>
>> >>> Currently I have all relevant software config for each server in a
>> >nix
>> >>> expression platforms.nix as follows (where vm01 is the hostname):
>> >>> {
>> >>> vm01 =
>> >>> { config, pkgs, ... }:
>> >>> {
>> >>> services.symfony.platforms = {
>> >>> database = {
>> >>> username = "www";
>> >>> /* password = "1234567" -> moved to keys.nix */
>> >>> };
>> >>> ...
>> >>> }
>> >>> }
>> >>>
>> >>> I want to remove the sensitive info from this file and put it in a
>> >>> separate nix expression, eg. keys.nix, maintaining the same
>> >structure so
>> >>> the files can be merged.
>> >>>
>> >>> In keys.nix I currently have
>> >>> {
>> >>> vm01 = {
>> >>> { config, pkgs, ... }:
>> >>> {
>> >>> services.symfony.platforms.database.password = "12345678";
>> >>> ..
>> >>> }
>> >>> }
>> >>> }
>> >>>
>> >>> I've modified my nixops deploy to have keys.nix loaded after the
>> >>> servers.nix and platforms.nix files, but I keep getting errors like
>> >"the
>> >>> attribute password does not exist"
>> >>>
>> >>> I must be overlooking something obvious as all the other files I
>> >define
>> >>> in my deploy are being merged correctly.
>> >>>
>> >>> Can anyone advise me on how to achieve this?
>> >>>
>> >>> The underlying reason is that I'm using git-crypt to encrypt the
>> >>> platforms.nix file, but this makes it impossible to work with
>> >branches (or
>> >>> git logs) etc. as the whole file is encrypted and git cannot merge
>> >binary
>> >>> files (it simply replaces them).
>> >>>
>> >>> Kind regards!
>> >>>
>> >>> Erik aka 4levels
>> >>>
>> >> _______________________________________________
>> >>> nix-dev mailing list
>> >>> nix-dev at lists.science.uu.nl
>> >>> http://lists.science.uu.nl/mailman/listinfo/nix-dev
>> >>>
>> >>
>> >
>> >
>> >------------------------------------------------------------------------
>> >
>> >_______________________________________________
>> >nix-dev mailing list
>> >nix-dev at lists.science.uu.nl
>> >http://lists.science.uu.nl/mailman/listinfo/nix-dev
>>
>> --
>> Sent from mobile. Please excuse my brevity.
>> _______________________________________________
>> nix-dev mailing list
>> nix-dev at lists.science.uu.nl
>> http://lists.science.uu.nl/mailman/listinfo/nix-dev
>>
>
> _______________________________________________
> nix-dev mailing list
> nix-dev at lists.science.uu.nl
> http://lists.science.uu.nl/mailman/listinfo/nix-dev
>
>
--
Tomasz Czyż
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.science.uu.nl/pipermail/nix-dev/attachments/20160609/46015a95/attachment-0001.html>
More information about the nix-dev
mailing list