Skip to content

Commit cc73fde

Browse files
committed
Write the agent cert with a hash
1 parent 66935c4 commit cc73fde

File tree

2 files changed

+6
-7
lines changed

2 files changed

+6
-7
lines changed

controllers/operator/certs/certificates.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -309,14 +309,16 @@ func ValidateCertificates(ctx context.Context, secretGetter secret.Getter, name,
309309

310310
// VerifyAndEnsureClientCertificatesForAgentsAndTLSType ensures that agent certs are present and correct, and returns whether they are of the kubernetes.io/tls type.
311311
// If the secret is of type kubernetes.io/tls, it creates a new secret containing the concatenation fo the tls.crt and tls.key fields
312-
func VerifyAndEnsureClientCertificatesForAgentsAndTLSType(ctx context.Context, secretReadClient, secretWriteClient secrets.SecretClient, secret types.NamespacedName) error {
312+
func VerifyAndEnsureClientCertificatesForAgentsAndTLSType(ctx context.Context, secretReadClient, secretWriteClient secrets.SecretClient, secret types.NamespacedName, log *zap.SugaredLogger) error {
313313
needToCreatePEM := false
314314
var secretData map[string][]byte
315315
var s corev1.Secret
316316
var err error
317+
var databaseSecretPath string
317318

318319
if vault.IsVaultSecretBackend() {
319320
needToCreatePEM = true
321+
databaseSecretPath = secretReadClient.VaultClient.DatabaseSecretPath()
320322
secretData, err = secretReadClient.VaultClient.ReadSecretBytes(fmt.Sprintf("%s/%s/%s", secretReadClient.VaultClient.DatabaseSecretPath(), secret.Namespace, secret.Name))
321323
if err != nil {
322324
return err
@@ -338,11 +340,8 @@ func VerifyAndEnsureClientCertificatesForAgentsAndTLSType(ctx context.Context, s
338340
return err
339341
}
340342

341-
dataMap := map[string]string{
342-
util.AutomationAgentPemSecretKey: data,
343-
}
344-
345-
return CreateOrUpdatePEMSecret(ctx, secretWriteClient, secret, dataMap, []metav1.OwnerReference{}, Database)
343+
secretHash := enterprisepem.ReadHashFromSecret(ctx, secretReadClient, secret.Namespace, secret.Name, databaseSecretPath, log)
344+
return CreateOrUpdatePEMSecretWithPreviousCert(ctx, secretWriteClient, secret, secretHash, data, []metav1.OwnerReference{}, Database)
346345
}
347346

348347
return validatePemSecret(s, util.AutomationAgentPemSecretKey, nil)

controllers/operator/common_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -632,7 +632,7 @@ func (r *ReconcileCommonController) ensureX509SecretAndCheckTLSType(ctx context.
632632
return workflow.Failed(xerrors.Errorf("Authentication mode for project is x509 but this MDB resource is not TLS enabled"))
633633
}
634634
agentSecretName := security.AgentClientCertificateSecretName(configurator.GetName()).Name
635-
err := certs.VerifyAndEnsureClientCertificatesForAgentsAndTLSType(ctx, configurator.GetSecretReadClient(), configurator.GetSecretWriteClient(), kube.ObjectKey(configurator.GetNamespace(), agentSecretName))
635+
err := certs.VerifyAndEnsureClientCertificatesForAgentsAndTLSType(ctx, configurator.GetSecretReadClient(), configurator.GetSecretWriteClient(), kube.ObjectKey(configurator.GetNamespace(), agentSecretName), log)
636636
if err != nil {
637637
return workflow.Failed(err)
638638
}

0 commit comments

Comments
 (0)