Comments (2)
First of all, I think this specific usecase can be done without IFD:
let
nixpkgs = builtins.fetchGit {
url = "https://github.com/NixOS/nixpkgs.git";
ref = "refs/heads/release-21.05";
rev = "c4cbbed186cc00066fd1998b5d915fe37f197135";
};
in {
meta = {
nixpkgs = import nixpkgs {};
};
defaults = {
system.nixos.version = "21.05-${nixpkgs.shortRev}";
};
host1 =
{ pkgs, ... }:
{
fileSystems."/".device = "/dev/sda";
boot.loader.grub.devices = [ "/dev/sda" ];
};
}
IFD doesn't work in this case because Colmena is using nix-instantiate --eval
in read-only mode. A simpler way to reproduce is:
# simple-ifd.nix
let
nixpkgs = builtins.fetchGit {
url = "https://github.com/NixOS/nixpkgs.git";
ref = "refs/heads/release-21.05";
rev = "c4cbbed186cc00066fd1998b5d915fe37f197135";
};
pkgs = import nixpkgs {};
drv = pkgs.writeText "some.nix" "123";
in import drv
This fails:
nix-instantiate --eval --json simple-ifd.nix
However, this succeeds:
nix-instantiate --eval --json --read-write-mode simple-ifd.nix
What do other deployment tools do? From a cursory look, NixOps always appends --read-write-mode
by default (which came from NixOS/nixops#279), and morph doesn't do that.
I currently can't think of any cases where we would not want store paths to be built when we do an --eval
, so let's add this so IFD works. For colmena eval
, this can also make things less confusing because currently store paths returned in the default eval mode are not valid.
from colmena.
Thank you!
from colmena.
Related Issues (20)
- Add option to create a 'result' symlink to colmena build HOT 1
- Encountering "Unexpected active profile" when running colmena apply HOT 1
- Failed to deploy an offline node HOT 4
- --nix-option is not taken into account HOT 3
- Document deployment.keys.<name>.path
- error: path '«unknown»/tmp' is a symlink on Darwin HOT 2
- colmena apply fails when invoked from systemd unit HOT 1
- Have Colmena push to Attic after success HOT 1
- Automatically prune old revisions
- documentation request for `colmenaHive`
- Trusted key issue attempting to apply to host in Tailscale tailnet HOT 2
- Prepare initial image HOT 1
- bug: cannot apply without `--impure` HOT 6
- Prevent apply-local without root access by default HOT 4
- Compatibility to special folder names
- Install Nixpkgs and/or channel out of band; pluggable out of band deployments?
- `build` should allow local build when on the machine to be built; same for `apply`? HOT 1
- `eval` hosts just like `build` and `apply` HOT 1
- `build` requires privilege escalation HOT 1
- lacks a signature by a trusted key, when targetUser is other than root
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from colmena.