in controllers/util/solr_tls_util.go [358:426]
func (tls *TLSConfig) serverEnvVars() []corev1.EnvVar {
opts := tls.Options
// Determine the correct values for the SOLR_SSL_WANT_CLIENT_AUTH and SOLR_SSL_NEED_CLIENT_AUTH vars
wantClientAuth := "false"
needClientAuth := "false"
if opts.ClientAuth == solr.Need {
needClientAuth = "true"
} else if opts.ClientAuth == solr.Want {
wantClientAuth = "true"
}
envVars := []corev1.EnvVar{
{
Name: "SOLR_SSL_ENABLED",
Value: "true",
},
{
Name: "SOLR_SSL_WANT_CLIENT_AUTH",
Value: wantClientAuth,
},
{
Name: "SOLR_SSL_NEED_CLIENT_AUTH",
Value: needClientAuth,
},
{
Name: "SOLR_SSL_CHECK_PEER_NAME",
Value: strconv.FormatBool(opts.CheckPeerName),
},
}
// tricky ... bin/solr checks for null SOLR_SSL_CLIENT_HOSTNAME_VERIFICATION via -z to set -Dsolr.jetty.ssl.verifyClientHostName=HTTPS
// so only add the SOLR_SSL_CLIENT_HOSTNAME_VERIFICATION env var if false
if !opts.VerifyClientHostname {
envVars = append(envVars, corev1.EnvVar{Name: "SOLR_SSL_CLIENT_HOSTNAME_VERIFICATION", Value: "false"})
}
// keystore / truststore come from either a mountedTLSDir or sourced from a secret mounted on the pod
if opts.MountedTLSDir != nil {
// TLS files are mounted by some external agent
envVars = append(envVars, corev1.EnvVar{Name: "SOLR_SSL_KEY_STORE", Value: mountedTLSKeystorePath(opts.MountedTLSDir)})
keyStorePassword := ""
if opts.MountedTLSDir.KeystorePassword != "" && opts.MountedTLSDir.KeystorePasswordFile == "" {
envVars = append(envVars, corev1.EnvVar{Name: "SOLR_SSL_KEY_STORE_PASSWORD", Value: opts.MountedTLSDir.KeystorePassword})
keyStorePassword = opts.MountedTLSDir.KeystorePassword
}
if opts.MountedTLSDir.TruststoreFile != "" {
envVars = append(envVars, corev1.EnvVar{Name: "SOLR_SSL_TRUST_STORE", Value: mountedTLSTruststorePath(opts.MountedTLSDir)})
trustStorePassword := opts.MountedTLSDir.TruststorePassword
if trustStorePassword == "" && keyStorePassword != "" {
trustStorePassword = keyStorePassword
}
if trustStorePassword != "" && opts.MountedTLSDir.TruststorePasswordFile == "" {
envVars = append(envVars, corev1.EnvVar{Name: "SOLR_SSL_TRUST_STORE_PASSWORD", Value: trustStorePassword})
}
} else {
envVars = append(envVars, corev1.EnvVar{Name: "SOLR_SSL_TRUST_STORE", Value: mountedTLSKeystorePath(opts.MountedTLSDir)})
if keyStorePassword != "" {
envVars = append(envVars, corev1.EnvVar{Name: "SOLR_SSL_TRUST_STORE_PASSWORD", Value: keyStorePassword})
}
}
} else {
// keystore / truststore + passwords come from a secret
envVars = append(envVars, tls.keystoreEnvVars("SOLR_SSL_KEY_STORE")...)
envVars = append(envVars, tls.truststoreEnvVars("SOLR_SSL_TRUST_STORE")...)
}
return envVars
}