@@ -860,15 +860,15 @@ default_pass = {{ .Data.data.password }}
860
860
certDir := strings .TrimSuffix (tlsCertDir , "/" )
861
861
vaultAnnotations ["vault.hashicorp.com/secret-volume-path-" + tlsCertFilename ] = certDir
862
862
vaultAnnotations ["vault.hashicorp.com/agent-inject-secret-" + tlsCertFilename ] = pathCert
863
- vaultAnnotations ["vault.hashicorp.com/agent-inject-template-" + tlsCertFilename ] = generateVaultTLSTemplate (commonName , altNames , vault , "certificate" )
863
+ vaultAnnotations ["vault.hashicorp.com/agent-inject-template-" + tlsCertFilename ] = generateVaultTLSCertificateTemplate (commonName , altNames , vault )
864
864
865
865
vaultAnnotations ["vault.hashicorp.com/secret-volume-path-" + tlsKeyFilename ] = certDir
866
866
vaultAnnotations ["vault.hashicorp.com/agent-inject-secret-" + tlsKeyFilename ] = pathCert
867
- vaultAnnotations ["vault.hashicorp.com/agent-inject-template-" + tlsKeyFilename ] = generateVaultTLSTemplate (commonName , altNames , vault , "private_key" )
867
+ vaultAnnotations ["vault.hashicorp.com/agent-inject-template-" + tlsKeyFilename ] = generateVaultTLSTemplate (commonName , altNames , vault . TLS . PKIIssuerPath , vault . TLS . IpSans , "private_key" )
868
868
869
869
vaultAnnotations ["vault.hashicorp.com/secret-volume-path-" + caCertFilename ] = certDir
870
870
vaultAnnotations ["vault.hashicorp.com/agent-inject-secret-" + caCertFilename ] = pathCert
871
- vaultAnnotations ["vault.hashicorp.com/agent-inject-template-" + caCertFilename ] = generateVaultTLSTemplate (commonName , altNames , vault , "issuing_ca" )
871
+ vaultAnnotations ["vault.hashicorp.com/agent-inject-template-" + caCertFilename ] = generateVaultCATemplate (commonName , altNames , vault )
872
872
}
873
873
874
874
return metadata .ReconcileAnnotations (currentAnnotations , vaultAnnotations , vault .Annotations )
@@ -883,11 +883,37 @@ func podHostNames(instance *rabbitmqv1beta1.RabbitmqCluster) string {
883
883
return strings .TrimPrefix (altNames , "," )
884
884
}
885
885
886
- func generateVaultTLSTemplate (commonName , altNames string , vault * rabbitmqv1beta1. VaultSpec , tlsAttribute string ) string {
886
+ func generateVaultTLSTemplate (commonName , altNames string , vaultPath string , ipSans string , tlsAttribute string ) string {
887
887
return fmt .Sprintf (`
888
888
{{- with secret "%s" "common_name=%s" "alt_names=%s" "ip_sans=%s" -}}
889
889
{{ .Data.%s }}
890
- {{- end }}` , vault .TLS .PKIIssuerPath , commonName , altNames , vault .TLS .IpSans , tlsAttribute )
890
+ {{- end }}` , vaultPath , commonName , altNames , ipSans , tlsAttribute )
891
+ }
892
+
893
+ func generateVaultCATemplate (commonName , altNames string , vault * rabbitmqv1beta1.VaultSpec ) string {
894
+ if (vault .TLS .PKIRootPath == "" ) {
895
+ return generateVaultTLSTemplate (commonName , altNames , vault .TLS .PKIIssuerPath , vault .TLS .IpSans , "issuing_ca" )
896
+ } else {
897
+ return fmt .Sprintf (`
898
+ {{- with secret "%s" -}}
899
+ {{ .Data.certificate }}
900
+ {{- end }}` , vault .TLS .PKIRootPath )
901
+ }
902
+ }
903
+
904
+ func generateVaultTLSCertificateTemplate (commonName , altNames string , vault * rabbitmqv1beta1.VaultSpec ) string {
905
+ return fmt .Sprintf (`
906
+ {{- with secret "%s" "common_name=%s" "alt_names=%s" "ip_sans=%s" -}}
907
+ {{ .Data.certificate }}
908
+ {{- if .Data.ca_chain -}}
909
+ {{- $lastintermediatecertindex := len .Data.ca_chain | subtract 1 -}}
910
+ {{ range $index, $cacert := .Data.ca_chain }}
911
+ {{ if (lt $index $lastintermediatecertindex) }}
912
+ {{ $cacert }}
913
+ {{ end }}
914
+ {{ end }}
915
+ {{- end -}}
916
+ {{- end -}}` , vault .TLS .PKIIssuerPath , commonName , altNames , vault .TLS .IpSans )
891
917
}
892
918
893
919
func (builder * StatefulSetBuilder ) updateContainerPorts () []corev1.ContainerPort {
0 commit comments