diff --git a/pkg/controllers/cassandra/nodepool/resource.go b/pkg/controllers/cassandra/nodepool/resource.go index 79b6a0bb4..bcc4a01af 100644 --- a/pkg/controllers/cassandra/nodepool/resource.go +++ b/pkg/controllers/cassandra/nodepool/resource.go @@ -12,6 +12,7 @@ import ( "github.com/jetstack/navigator/pkg/apis/navigator/v1alpha1" "github.com/jetstack/navigator/pkg/controllers/cassandra/util" + "github.com/jetstack/navigator/pkg/controllers/common" "github.com/jetstack/navigator/pkg/util/ptr" ) @@ -218,7 +219,8 @@ func StatefulSetForCluster( Name: "JVM_OPTS", Value: fmt.Sprintf( "-javaagent:%s/jolokia.jar=host=%s,port=%d,agentContext=%s "+ - "-javaagent:%s/jmx_prometheus_javaagent.jar=8080:%s/jmx_prometheus_javaagent.yaml", + "-javaagent:%s/jmx_prometheus_javaagent.jar=8080:%s/jmx_prometheus_javaagent.yaml "+ + common.JVMCgroupOpts, sharedVolumeMountPath, jolokiaHost, jolokiaPort, diff --git a/pkg/controllers/common/common.go b/pkg/controllers/common/common.go new file mode 100644 index 000000000..4157cb50c --- /dev/null +++ b/pkg/controllers/common/common.go @@ -0,0 +1,13 @@ +package common + +const ( + JVMCgroupOpts = + // allow using cgroup flags + "-XX:+UnlockExperimentalVMOptions " + + + // use cgroup limit instead of host + "-XX:+UseCGroupMemoryLimitForHeap " + + + // use 100% of the available memory + "-XX:MaxRAMFraction=1 " +) diff --git a/pkg/controllers/elasticsearch/actions/create_nodepool.go b/pkg/controllers/elasticsearch/actions/create_nodepool.go index 6f445bc69..901720823 100644 --- a/pkg/controllers/elasticsearch/actions/create_nodepool.go +++ b/pkg/controllers/elasticsearch/actions/create_nodepool.go @@ -12,6 +12,7 @@ import ( "github.com/jetstack/navigator/pkg/apis/navigator/v1alpha1" "github.com/jetstack/navigator/pkg/controllers" + "github.com/jetstack/navigator/pkg/controllers/common" "github.com/jetstack/navigator/pkg/controllers/elasticsearch/util" "github.com/jetstack/navigator/pkg/util/ptr" ) @@ -200,6 +201,10 @@ func elasticsearchPodTemplateSpec(controllerName string, c *v1alpha1.Elasticsear Name: "PLUGINS", Value: plugins, }, + { + Name: "ES_JAVA_OPTS", + Value: common.JVMCgroupOpts, + }, { Name: "LEADER_ELECTION_CONFIG_MAP", // TODO: trim the length of this string