high-grass-3103
08/07/2025, 6:22 PMremote
provider, but that's more of an escape hatch (and then cloud-init
but only for initialization).
How about immutable distributions like NixOS (or just Nix)? They have well defined states and well defined state transition points, I think they should work great with pulumimillions-planet-24262
08/08/2025, 12:10 AMhigh-grass-3103
08/09/2025, 7:08 AMmillions-planet-24262
08/11/2025, 5:37 AMhigh-grass-3103
08/11/2025, 8:32 AMkubectl apply
. Or at the very least it would bring a simpler syntax and typed model., like pulumi-coudinit provider.high-grass-3103
08/11/2025, 8:35 AMhigh-grass-3103
08/11/2025, 8:37 AMhigh-grass-3103
08/11/2025, 8:47 AMmillions-planet-24262
08/11/2025, 11:43 PMI don't really understand your question, what pulumi brings to the table. I can do manually everything pulumi doesMy bad, should have been clearer here. When you are saying I want nix integration with Pulumi do you want: a. A provider that can install Nix package manager onto a system? b. A provider that can bootstrap a (cloud) machine on NixOS? c. A provider that can load and evaluate flake outputs? d. A provider that can produce and run Nix expressions? e. A provider that can drop configuration.nix onto already provisioned machine and just run that?
high-grass-3103
08/12/2025, 10:58 AMmillions-planet-24262
08/12/2025, 11:25 PMconfiguration.nix
is built using the Nix language, so to build something like this we would have to translate between your Pulumi language of choice and Nix language...high-grass-3103
08/15/2025, 7:17 AMmillions-planet-24262
08/15/2025, 7:44 AMhigh-grass-3103
08/15/2025, 7:46 AMmillions-planet-24262
08/15/2025, 7:49 AMmillions-planet-24262
08/15/2025, 7:50 AMconfiguration.nix
for a system one tries to provision and then just let pulumi kick-off nixos-rebuild
?high-grass-3103
08/15/2025, 7:50 AMmillions-planet-24262
08/15/2025, 7:52 AMhigh-grass-3103
08/15/2025, 7:52 AMmillions-planet-24262
08/15/2025, 7:52 AMhigh-grass-3103
08/15/2025, 7:53 AMas long as you have very limited set of things to do.how do you mean
millions-planet-24262
08/15/2025, 7:56 AMhigh-grass-3103
08/15/2025, 7:58 AMmillions-planet-24262
08/15/2025, 7:59 AMas long as you have very limited set of things to do.
millions-planet-24262
08/15/2025, 8:01 AMpkgs.wezterm.overrideAttrs
which is a function call.millions-planet-24262
08/15/2025, 8:02 AMmillions-planet-24262
08/15/2025, 8:04 AM{ ... }:
(self: super: {
pantheon = super.pantheon.overrideScope (
sself: ssuper: {
# Remove some of the Wingpanel indicators that I never use
wingpanelIndicators = builtins.filter (
val: val != ssuper.wingpanel-indicator-bluetooth && val != ssuper.wingpanel-indicator-network
) ssuper.wingpanelIndicators;
# Remove some of the Switchboard plugs that I never use
switchboardPlugs = builtins.filter (
val:
val != ssuper.switchboard-plug-applications
&& val != ssuper.switchboard-plug-bluetooth
&& val != ssuper.switchboard-plug-network
&& val != ssuper.switchboard-plug-onlineaccounts
&& val != ssuper.switchboard-plug-printers
&& val != ssuper.switchboard-plug-sharing
&& val != ssuper.switchboard-plug-wacom
) ssuper.switchboardPlugs;
switchboard-plug-sound = ssuper.switchboard-plug-sound.override {
# The switchboard plugin depends on PulseAudio directly, even though it
# only actually needs libraries and works just fine with pipewire.
pulseaudio = self.libpulseaudio;
};
wingpanel-indicator-sound = ssuper.wingpanel-indicator-sound.override {
# The sound indicator depends on PulseAudio directly, even though it
# only actually needs libraries and works just fine with pipewire.
pulseaudio = self.libpulseaudio;
};
wingpanel-indicator-datetime = ssuper.wingpanel-indicator-datetime.override {
# This allows to drop duplicate evolution data server packages
evolution-data-server = self.evolution-data-server-gtk4;
# I don't want calendar, but want the calendar indicator. This is a
# simple hack to point the applet to launch a `true` binary when double-
# clicking on the date. Without actual legitimate binary, this will fail
# and crash the entire session — why elementary, why?..
elementary-calendar = "true ";
};
}
);
})
high-grass-3103
08/15/2025, 8:05 AMmillions-planet-24262
08/15/2025, 8:07 AMswitchboardPlugs = builtins.filter (
val:
---> Some templating language that takes a list of Pulumi inputs and transforms them into the following statements:
val != ssuper.switchboard-plug-applications
&& val != ssuper.switchboard-plug-bluetooth
&& val != ssuper.switchboard-plug-network
&& val != ssuper.switchboard-plug-onlineaccounts
&& val != ssuper.switchboard-plug-printers
&& val != ssuper.switchboard-plug-sharing
&& val != ssuper.switchboard-plug-wacom
) ssuper.switchboardPlugs;
millions-planet-24262
08/15/2025, 8:07 AMhigh-grass-3103
08/15/2025, 8:08 AMmillions-planet-24262
08/15/2025, 8:09 AMas long as you have very limited set of things to do.
millions-planet-24262
08/15/2025, 8:09 AMmillions-planet-24262
08/15/2025, 8:09 AMhigh-grass-3103
08/15/2025, 8:11 AMmillions-planet-24262
08/15/2025, 8:11 AMhigh-grass-3103
08/15/2025, 8:14 AMhigh-grass-3103
08/15/2025, 8:14 AMmillions-planet-24262
08/15/2025, 8:16 AMmillions-planet-24262
08/15/2025, 8:17 AMmillions-planet-24262
08/15/2025, 8:18 AMhigh-grass-3103
08/15/2025, 8:21 AM