anchor.diff:              "${cfg.package}/bin/k3s ${cfg.role}"
             ] ++ (optional cfg.docker "--docker")
             ++ (optional cfg.disableAgent "--disable-agent")
  -          ++ (optional (cfg.role == "agent") "--server ${cfg.serverAddr} --token ${cfg.token}")
  +          ++ (optional (cfg.role == "agent") "--server ${cfg.serverAddr} ${
  +            if cfg.tokenFile != null then
  +              "--token-file ${cfg.tokenFile}"
  +            else
  +              "--token ${cfg.token}"
  +          }")
             ++ [ cfg.extraFlags ]
           );
         };
  
positive.code: 
      token = mkOption {
        type = types.str;
        description = "The k3s token to use when connecting to the server. This option only makes sense for an agent.";
        default = "";
      };
  
      docker = mkOption {
  
negative.code:         message = "serverAddr should be set if role is 'agent'";
        }
        {
          assertion = cfg.role == "agent" -> cfg.token != "" || cfg.tokenFile != null;
          message = "token or tokenFile should be set if role is 'agent'";
        }
      ];
  
  