@@ -40,7 +40,6 @@ import (
4040 autov2 "k8s.io/api/autoscaling/v2"
4141 v1 "k8s.io/api/batch/v1"
4242 corev1 "k8s.io/api/core/v1"
43- "k8s.io/apimachinery/pkg/api/resource"
4443 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
4544 "k8s.io/apimachinery/pkg/util/intstr"
4645 "k8s.io/client-go/kubernetes/scheme"
@@ -336,14 +335,14 @@ func makePodTemplate(container *corev1.Container, filebeatContainer *corev1.Cont
336335 }
337336}
338337
339- func MakeJavaFunctionCommand (downloadPath , packageFile , name , clusterName , generateLogConfigCommand , logLevel , details , memory , extraDependenciesDir , uid string ,
338+ func MakeJavaFunctionCommand (downloadPath , packageFile , name , clusterName , generateLogConfigCommand , logLevel , details , extraDependenciesDir , uid string ,
340339 javaOpts []string , hasPulsarctl , hasWget , authProvided , tlsProvided bool , secretMaps map [string ]v1alpha1.SecretRef ,
341340 state * v1alpha1.Stateful ,
342341 tlsConfig TLSConfig , authConfig * v1alpha1.AuthConfig ,
343342 maxPendingAsyncRequests * int32 , logConfigFileName string ) []string {
344343 processCommand := setShardIDEnvironmentVariableCommand () + " && " + generateLogConfigCommand +
345344 strings .Join (getProcessJavaRuntimeArgs (name , packageFile , clusterName , logLevel , details ,
346- memory , extraDependenciesDir , uid , javaOpts , authProvided , tlsProvided , secretMaps , state , tlsConfig ,
345+ extraDependenciesDir , uid , javaOpts , authProvided , tlsProvided , secretMaps , state , tlsConfig ,
347346 authConfig , maxPendingAsyncRequests , logConfigFileName ), " " )
348347 if downloadPath != "" && ! utils .EnableInitContainers {
349348 // prepend download command if the downPath is provided
@@ -1070,7 +1069,7 @@ func setShardIDEnvironmentVariableCommand() string {
10701069 return fmt .Sprintf ("%s=${POD_NAME##*-} && echo shardId=${%s}" , EnvShardID , EnvShardID )
10711070}
10721071
1073- func getProcessJavaRuntimeArgs (name , packageName , clusterName , logLevel , details , memory , extraDependenciesDir , uid string ,
1072+ func getProcessJavaRuntimeArgs (name , packageName , clusterName , logLevel , details , extraDependenciesDir , uid string ,
10741073 javaOpts []string , authProvided , tlsProvided bool , secretMaps map [string ]v1alpha1.SecretRef ,
10751074 state * v1alpha1.Stateful ,
10761075 tlsConfig TLSConfig , authConfig * v1alpha1.AuthConfig ,
@@ -1103,7 +1102,12 @@ func getProcessJavaRuntimeArgs(name, packageName, clusterName, logLevel, details
11031102 "-Dpulsar.function.log.dir=logs/functions" ,
11041103 "-Dpulsar.function.log.file=" + fmt .Sprintf ("%s-${%s}" , name , EnvShardID ),
11051104 setLogLevel ,
1106- "-Xmx" + memory ,
1105+ "-XX:InitialRAMPercentage=20" ,
1106+ "-XX:MaxRAMPercentage=40" ,
1107+ "-XX:+UseG1GC" ,
1108+ "-XX:+HeapDumpOnOutOfMemoryError" ,
1109+ "-XX:HeapDumpPath=/pulsar/tmp/heapdump-%p.hprof" ,
1110+ "-Xlog:gc*:file=/pulsar/logs/gc.log:time,level,tags:filecount=5,filesize=10M" ,
11071111 strings .Join (javaOpts , " " ),
11081112 "org.apache.pulsar.functions.instance.JavaInstanceMain" ,
11091113 "--jar" ,
@@ -1851,12 +1855,22 @@ func getPythonSecretProviderArgs(secretMaps map[string]v1alpha1.SecretRef) []str
18511855 return ret
18521856}
18531857
1854- // Java command requires memory values in resource.DecimalSI format
1855- func getDecimalSIMemory (quantity * resource.Quantity ) string {
1856- if quantity .Format == resource .DecimalSI {
1857- return quantity .String ()
1858+ func getGenericSecretProviderArgs (secretMaps map [string ]v1alpha1.SecretRef , language string ) []string {
1859+ var ret []string
1860+ if len (secretMaps ) > 0 {
1861+ if language == "python" {
1862+ ret = []string {
1863+ "--secrets_provider" ,
1864+ "secrets_provider.EnvironmentBasedSecretsProvider" ,
1865+ }
1866+ } else if language == "nodejs" {
1867+ ret = []string {
1868+ "--secrets_provider" ,
1869+ "EnvironmentBasedSecretsProvider" ,
1870+ }
1871+ }
18581872 }
1859- return resource . NewQuantity ( quantity . Value (), resource . DecimalSI ). String ()
1873+ return ret
18601874}
18611875
18621876func getTLSTrustCertPath (tlsVolume TLSConfig , path string ) string {
0 commit comments