File tree 4 files changed +34
-8
lines changed
4 files changed +34
-8
lines changed Original file line number Diff line number Diff line change 25
25
nixosModules . default = import ./nixos/k0s.nix ;
26
26
27
27
checks = forAllSystems ( system :
28
- let pkgs = nixpkgs . legacyPackages . ${ system } ;
29
- in {
30
- basic = pkgs . testers . runNixOSTest {
31
- imports = [ ./tests/basic.nix ] ;
28
+ let
29
+ pkgs = nixpkgs . legacyPackages . ${ system } ;
30
+ forAllTests = lib . genAttrs [ "single" "ctrl-wrkr" ] ;
31
+ in forAllTests ( test :
32
+ pkgs . testers . runNixOSTest {
33
+ imports = [ ./tests/${ test } .nix ] ;
32
34
node = { pkgsReadOnly = false ; } ;
33
35
defaults = {
34
36
imports = [ self . nixosModules . default ] ;
35
37
nixpkgs . overlays = [ self . overlays . default ] ;
36
38
} ;
37
- } ;
38
- } ) ;
39
+ } ) ) ;
39
40
40
41
} ;
41
42
}
Original file line number Diff line number Diff line change 76
76
if ( cfg . role == "worker" )
77
77
then "worker"
78
78
else "controller" ;
79
+ requireJoinToken = cfg . role == "worker" || ( cfg . role == "controller" && ! cfg . isLeader ) ;
79
80
unitName = "k0s" + subcommand ;
80
81
configFile =
81
82
if cfg . configText != ""
118
119
+ optionalString ( cfg . role != "worker" ) " --config=${ configFile } "
119
120
+ optionalString ( cfg . role == "single" ) " --single"
120
121
+ optionalString ( cfg . role == "controller+worker" ) " --enable-worker --no-taints"
121
- + optionalString ( cfg . role != "single" && ! cfg . isLeader ) " --token-file=${ cfg . tokenFile } " ;
122
+ + optionalString requireJoinToken " --token-file=${ cfg . tokenFile } " ;
122
123
} ;
123
- unitConfig = mkIf ( cfg . role != "single" && ! cfg . isLeader ) {
124
+ unitConfig = mkIf requireJoinToken {
124
125
ConditionPathExists = cfg . tokenFile ;
125
126
} ;
126
127
} ;
Original file line number Diff line number Diff line change
1
+ {
2
+ name = "ctrl-wrkr" ;
3
+ nodes = {
4
+ node1 = { config , ... } : {
5
+ services . k0s = {
6
+ enable = true ;
7
+ role = "controller+worker" ;
8
+ spec . api = {
9
+ address = config . networking . primaryIPAddress ;
10
+ sans = [ config . networking . primaryIPAddress ] ;
11
+ } ;
12
+ } ;
13
+
14
+ } ;
15
+ } ;
16
+ testScript = { nodes } :
17
+ let k0s = nodes . node1 . services . k0s . package ;
18
+ in ''
19
+ start_all()
20
+ node1.wait_for_unit("k0scontroller")
21
+ node1.wait_for_file("/run/k0s/status.sock")
22
+ node1.succeed("${ k0s } /bin/k0s status")
23
+ '' ;
24
+ }
File renamed without changes.
You can’t perform that action at this time.
0 commit comments