@@ -774,7 +774,25 @@ func getConfig(
774
774
var tlsCert , tlsRootCert , adminCert , adminRootCert , adminClientRootCert , signCert , signRootCert * x509.Certificate
775
775
var tlsKey , adminKey , signKey * ecdsa.PrivateKey
776
776
var err error
777
- if refreshCerts {
777
+ ctx := context .Background ()
778
+ if tlsParams .External != nil {
779
+ secret , err := client .CoreV1 ().Secrets (tlsParams .External .SecretNamespace ).Get (ctx , tlsParams .External .SecretName , v1.GetOptions {})
780
+ if err != nil {
781
+ return nil , errors .Wrapf (err , "failed to get secret %s" , tlsParams .External .SecretName )
782
+ }
783
+ tlsCert , err = utils .ParseX509Certificate (secret .Data [tlsParams .External .CertificateKey ])
784
+ if err != nil {
785
+ return nil , errors .Wrapf (err , "failed to parse tls certificate" )
786
+ }
787
+ tlsRootCert , err = utils .ParseX509Certificate (secret .Data [tlsParams .External .RootCertificateKey ])
788
+ if err != nil {
789
+ return nil , errors .Wrapf (err , "failed to parse tls root certificate" )
790
+ }
791
+ tlsKey , err = utils .ParseECDSAPrivateKey (secret .Data [tlsParams .External .PrivateKeyKey ])
792
+ if err != nil {
793
+ return nil , errors .Wrapf (err , "failed to parse tls private key" )
794
+ }
795
+ } else if refreshCerts {
778
796
cacert , err := base64 .StdEncoding .DecodeString (tlsParams .Catls .Cacert )
779
797
if err != nil {
780
798
return nil , errors .Wrapf (err , "failed to decode tls ca cert" )
@@ -865,7 +883,24 @@ func getConfig(
865
883
}
866
884
signParams := conf .Spec .Secret .Enrollment .Component
867
885
caUrl := fmt .Sprintf ("https://%s:%d" , signParams .Cahost , signParams .Caport )
868
- if refreshCerts {
886
+ if signParams .External != nil {
887
+ secret , err := client .CoreV1 ().Secrets (signParams .External .SecretNamespace ).Get (ctx , signParams .External .SecretName , v1.GetOptions {})
888
+ if err != nil {
889
+ return nil , errors .Wrapf (err , "failed to get secret %s" , signParams .External .SecretName )
890
+ }
891
+ signCert , err = utils .ParseX509Certificate (secret .Data [signParams .External .CertificateKey ])
892
+ if err != nil {
893
+ return nil , errors .Wrapf (err , "failed to parse sign certificate" )
894
+ }
895
+ signRootCert , err = utils .ParseX509Certificate (secret .Data [signParams .External .RootCertificateKey ])
896
+ if err != nil {
897
+ return nil , errors .Wrapf (err , "failed to parse sign root certificate" )
898
+ }
899
+ signKey , err = utils .ParseECDSAPrivateKey (secret .Data [signParams .External .PrivateKeyKey ])
900
+ if err != nil {
901
+ return nil , errors .Wrapf (err , "failed to parse sign private key" )
902
+ }
903
+ } else if refreshCerts {
869
904
cacert , err := base64 .StdEncoding .DecodeString (signParams .Catls .Cacert )
870
905
if err != nil {
871
906
return nil , errors .Wrapf (err , "failed to decode sign ca cert" )
0 commit comments