summaryrefslogtreecommitdiffstats
path: root/nixos
diff options
context:
space:
mode:
authorSarah Brofeldt <sbrofeldt@gmail.com>2021-03-10 20:25:13 +0100
committerGitHub <noreply@github.com>2021-03-10 20:25:13 +0100
commit33d6e71133dce3cbd48aa0dd95c945a9f83583bd (patch)
tree97e3f621068785c8bc85f6a8676c8de29027c213 /nixos
parent804f493483a3e82ca2ea1ddc23ca9a6d9d146c92 (diff)
parentfa4bb6566af1d74da42fdb4d6c3c741a28dd23f0 (diff)
Merge pull request #98446 from srhb/fix-kafka
apache-kafka: Fix, update and adjust JRE/JVM
Diffstat (limited to 'nixos')
-rw-r--r--nixos/doc/manual/release-notes/rl-2105.xml15
-rw-r--r--nixos/modules/services/misc/apache-kafka.nix23
-rw-r--r--nixos/tests/kafka.nix6
3 files changed, 25 insertions, 19 deletions
diff --git a/nixos/doc/manual/release-notes/rl-2105.xml b/nixos/doc/manual/release-notes/rl-2105.xml
index 9a1e6b6618df..e052632ecafd 100644
--- a/nixos/doc/manual/release-notes/rl-2105.xml
+++ b/nixos/doc/manual/release-notes/rl-2105.xml
@@ -562,6 +562,21 @@ self: super:
<xref linkend="opt-services.xserver.videoDrivers" /> no longer uses the deprecated <literal>cirrus</literal> and <literal>vesa</literal> device dependent X drivers by default. It also enables both <literal>amdgpu</literal> and <literal>nouveau</literal> drivers by default now.
</para>
</listitem>
+ <listitem>
+ <para>
+ The <package>apacheKafka</package> packages are now built with
+ version-matched JREs. Versions 2.6 and above, the ones that recommend it,
+ use jdk11, while versions below remain on jdk8. The NixOS service has
+ been adjusted to start the service using the same version as the package,
+ adjustable with the new
+ <link linkend="opt-services.apache-kafka.jre">services.apache-kafka.jre</link>
+ option. Furthermore, the default list of
+ <link linkend="opt-services.apache-kafka.jvmOptions">services.apache-kafka.jvmOptions</link>
+ have been removed. You should set your own according to the
+ <link xlink:href="https://kafka.apache.org/documentation/#java">upstream documentation</link>
+ for your Kafka version.
+ </para>
+ </listitem>
</itemizedlist>
</section>
diff --git a/nixos/modules/services/misc/apache-kafka.nix b/nixos/modules/services/misc/apache-kafka.nix
index f3a650a260f1..69dfadfe54e0 100644
--- a/nixos/modules/services/misc/apache-kafka.nix
+++ b/nixos/modules/services/misc/apache-kafka.nix
@@ -90,19 +90,7 @@ in {
jvmOptions = mkOption {
description = "Extra command line options for the JVM running Kafka.";
- default = [
- "-server"
- "-Xmx1G"
- "-Xms1G"
- "-XX:+UseCompressedOops"
- "-XX:+UseParNewGC"
- "-XX:+UseConcMarkSweepGC"
- "-XX:+CMSClassUnloadingEnabled"
- "-XX:+CMSScavengeBeforeRemark"
- "-XX:+DisableExplicitGC"
- "-Djava.awt.headless=true"
- "-Djava.net.preferIPv4Stack=true"
- ];
+ default = [];
type = types.listOf types.str;
example = [
"-Djava.net.preferIPv4Stack=true"
@@ -118,6 +106,13 @@ in {
type = types.package;
};
+ jre = mkOption {
+ description = "The JRE with which to run Kafka";
+ default = cfg.package.passthru.jre;
+ defaultText = "pkgs.apacheKafka.passthru.jre";
+ type = types.package;
+ };
+
};
config = mkIf cfg.enable {
@@ -138,7 +133,7 @@ in {
after = [ "network.target" ];
serviceConfig = {
ExecStart = ''
- ${pkgs.jre}/bin/java \
+ ${cfg.jre}/bin/java \
-cp "${cfg.package}/libs/*" \
-Dlog4j.configuration=file:${logConfig} \
${toString cfg.jvmOptions} \
diff --git a/nixos/tests/kafka.nix b/nixos/tests/kafka.nix
index d5c54f7d9910..034601c815b9 100644
--- a/nixos/tests/kafka.nix
+++ b/nixos/tests/kafka.nix
@@ -30,11 +30,6 @@ let
'';
package = kafkaPackage;
zookeeper = "zookeeper1:2181";
- # These are the default options, but UseCompressedOops doesn't work with 32bit JVM
- jvmOptions = [
- "-server" "-Xmx1G" "-Xms1G" "-XX:+UseParNewGC" "-XX:+UseConcMarkSweepGC" "-XX:+CMSClassUnloadingEnabled"
- "-XX:+CMSScavengeBeforeRemark" "-XX:+DisableExplicitGC" "-Djava.awt.headless=true" "-Djava.net.preferIPv4Stack=true"
- ] ++ optionals (! pkgs.stdenv.isi686 ) [ "-XX:+UseCompressedOops" ];
};
networking.firewall.allowedTCPPorts = [ 9092 ];
@@ -82,4 +77,5 @@ let
in with pkgs; {
kafka_2_4 = makeKafkaTest "kafka_2_4" apacheKafka_2_4;
kafka_2_5 = makeKafkaTest "kafka_2_5" apacheKafka_2_5;
+ kafka_2_6 = makeKafkaTest "kafka_2_6" apacheKafka_2_6;
}