From 44ea18499710049e165b475a98e04d02252d7533 Mon Sep 17 00:00:00 2001 From: Augustin Borsu Date: Wed, 23 Dec 2015 09:19:18 +0100 Subject: jenkins ci enhancement: add port and prefix option As named these options enable to specify a bind host and url prefix to be used by jenkins. Adding these options in the config rather than using extra arguments allows us to re-use those information in other services using jenkins such as jenkins-job-builder or a reverse proxy. --- .../continuous-integration/jenkins/default.nix | 35 ++++++++++++++++++---- 1 file changed, 30 insertions(+), 5 deletions(-) (limited to 'nixos/modules/services/continuous-integration') diff --git a/nixos/modules/services/continuous-integration/jenkins/default.nix b/nixos/modules/services/continuous-integration/jenkins/default.nix index 9bd511ad3ae3..3b76ada72bb5 100644 --- a/nixos/modules/services/continuous-integration/jenkins/default.nix +++ b/nixos/modules/services/continuous-integration/jenkins/default.nix @@ -48,11 +48,33 @@ in { ''; }; + host = mkOption { + default = "0.0.0.0"; + example = "localhost"; + type = types.str; + description = '' + Specifies the bind adress on which the jenkins HTTP interface listens. + The default is the wildcard adress. + ''; + }; + port = mkOption { default = 8080; type = types.int; description = '' - Specifies port number on which the jenkins HTTP interface listens. The default is 8080. + Specifies port number on which the jenkins HTTP interface listens. + The default is 8080. + ''; + }; + + prefix = mkOption { + default = ""; + example = "/jenkins"; + type = types.str; + description = '' + Specifies a urlPrefix to use with jenkins. + If the example /jenkins is given, the jenkins server will be + accessible using localhost:8080/jenkins. ''; }; @@ -80,7 +102,7 @@ in { extraOptions = mkOption { type = types.listOf types.str; default = [ ]; - example = [ "--debug=9" "--httpListenAddress=localhost" ]; + example = [ "--debug=9" ]; description = '' Additional command line arguments to pass to Jenkins. ''; @@ -134,15 +156,18 @@ in { ''; script = '' - ${pkgs.jdk}/bin/java -jar ${pkgs.jenkins} --httpPort=${toString cfg.port} ${concatStringsSep " " cfg.extraOptions} + ${pkgs.jdk}/bin/java -jar ${pkgs.jenkins} --httpListenAddress=${cfg.host} \ + --httpPort=${toString cfg.port} \ + --prefix=${cfg.prefix} \ + ${concatStringsSep " " cfg.extraOptions} ''; postStart = '' - until ${pkgs.curl}/bin/curl -s -L localhost:${toString cfg.port} ; do + until ${pkgs.curl}/bin/curl -s -L ${cfg.host}:${toString cfg.port}${cfg.prefix} ; do sleep 10 done while true ; do - index=`${pkgs.curl}/bin/curl -s -L localhost:${toString cfg.port}` + index=`${pkgs.curl}/bin/curl -s -L ${cfg.host}:${toString cfg.port}${cfg.prefix}` if [[ !("$index" =~ 'Please wait while Jenkins is restarting' || "$index" =~ 'Please wait while Jenkins is getting ready to work') ]]; then exit 0 -- cgit 1.4.1 From 1c120c55fbf2f034b4d3bfff87af85bf7bb11812 Mon Sep 17 00:00:00 2001 From: Augustin Borsu Date: Wed, 23 Dec 2015 09:26:24 +0100 Subject: jenkins-job-builder fix: use prefix and host from jenkins cfg, fixes #11897 --- nixos/modules/services/continuous-integration/jenkins/job-builder.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nixos/modules/services/continuous-integration') diff --git a/nixos/modules/services/continuous-integration/jenkins/job-builder.nix b/nixos/modules/services/continuous-integration/jenkins/job-builder.nix index ec15a6a3d706..1f65db4ce956 100644 --- a/nixos/modules/services/continuous-integration/jenkins/job-builder.nix +++ b/nixos/modules/services/continuous-integration/jenkins/job-builder.nix @@ -144,7 +144,7 @@ in { done echo "Asking Jenkins to reload config" - curl --silent -X POST http://localhost:${toString jenkinsCfg.port}/reload + curl --silent -X POST http://${jenkinsCfg.host}:${toString jenkinsCfg.port}${jenkinsCfg.prefix}/reload ''; serviceConfig = { User = jenkinsCfg.user; -- cgit 1.4.1 From c6b251f5d549f8d3dd877d0b086ae4f876bc5a2b Mon Sep 17 00:00:00 2001 From: Bjørn Forsman Date: Wed, 23 Dec 2015 23:17:03 +0100 Subject: nixos/jenkins: rename option 'host' to 'listenAddress' I think the name 'listenAddress' is more descriptive. Other NixOS modules that define 'host' either use it as listen address or as address a client connects to. listenAddress is unambiguous. The addition of 'host' was added earlier today[1], so not bothering with ./nixos/modules/rename.nix. [1]: 44ea18499710049e ("jenkins ci enhancement: add port and prefix option") --- nixos/modules/services/continuous-integration/jenkins/default.nix | 8 ++++---- .../services/continuous-integration/jenkins/job-builder.nix | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'nixos/modules/services/continuous-integration') diff --git a/nixos/modules/services/continuous-integration/jenkins/default.nix b/nixos/modules/services/continuous-integration/jenkins/default.nix index 3b76ada72bb5..9bffd97628af 100644 --- a/nixos/modules/services/continuous-integration/jenkins/default.nix +++ b/nixos/modules/services/continuous-integration/jenkins/default.nix @@ -48,7 +48,7 @@ in { ''; }; - host = mkOption { + listenAddress = mkOption { default = "0.0.0.0"; example = "localhost"; type = types.str; @@ -156,18 +156,18 @@ in { ''; script = '' - ${pkgs.jdk}/bin/java -jar ${pkgs.jenkins} --httpListenAddress=${cfg.host} \ + ${pkgs.jdk}/bin/java -jar ${pkgs.jenkins} --httpListenAddress=${cfg.listenAddress} \ --httpPort=${toString cfg.port} \ --prefix=${cfg.prefix} \ ${concatStringsSep " " cfg.extraOptions} ''; postStart = '' - until ${pkgs.curl}/bin/curl -s -L ${cfg.host}:${toString cfg.port}${cfg.prefix} ; do + until ${pkgs.curl}/bin/curl -s -L ${cfg.listenAddress}:${toString cfg.port}${cfg.prefix} ; do sleep 10 done while true ; do - index=`${pkgs.curl}/bin/curl -s -L ${cfg.host}:${toString cfg.port}${cfg.prefix}` + index=`${pkgs.curl}/bin/curl -s -L ${cfg.listenAddress}:${toString cfg.port}${cfg.prefix}` if [[ !("$index" =~ 'Please wait while Jenkins is restarting' || "$index" =~ 'Please wait while Jenkins is getting ready to work') ]]; then exit 0 diff --git a/nixos/modules/services/continuous-integration/jenkins/job-builder.nix b/nixos/modules/services/continuous-integration/jenkins/job-builder.nix index 1f65db4ce956..702d452279f8 100644 --- a/nixos/modules/services/continuous-integration/jenkins/job-builder.nix +++ b/nixos/modules/services/continuous-integration/jenkins/job-builder.nix @@ -144,7 +144,7 @@ in { done echo "Asking Jenkins to reload config" - curl --silent -X POST http://${jenkinsCfg.host}:${toString jenkinsCfg.port}${jenkinsCfg.prefix}/reload + curl --silent -X POST http://${jenkinsCfg.listenAddress}:${toString jenkinsCfg.port}${jenkinsCfg.prefix}/reload ''; serviceConfig = { User = jenkinsCfg.user; -- cgit 1.4.1 From b2d0886b37bc7a927c98a15430b3be3cbc4f81f7 Mon Sep 17 00:00:00 2001 From: Bjørn Forsman Date: Wed, 23 Dec 2015 23:23:07 +0100 Subject: nixos/jenkins: fix typo in docstring (s/adress/address/) --- nixos/modules/services/continuous-integration/jenkins/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'nixos/modules/services/continuous-integration') diff --git a/nixos/modules/services/continuous-integration/jenkins/default.nix b/nixos/modules/services/continuous-integration/jenkins/default.nix index 9bffd97628af..d571aa3e199d 100644 --- a/nixos/modules/services/continuous-integration/jenkins/default.nix +++ b/nixos/modules/services/continuous-integration/jenkins/default.nix @@ -53,8 +53,8 @@ in { example = "localhost"; type = types.str; description = '' - Specifies the bind adress on which the jenkins HTTP interface listens. - The default is the wildcard adress. + Specifies the bind address on which the jenkins HTTP interface listens. + The default is the wildcard address. ''; }; -- cgit 1.4.1