Skip to content

Commit f7c2432

Browse files
committed
ESO-155: Updates to use different TLS Secret name when cert-manager enabled
Signed-off-by: Bharath B <[email protected]>
1 parent e3fe1cf commit f7c2432

File tree

4 files changed

+30
-2
lines changed

4 files changed

+30
-2
lines changed

pkg/controller/common/utils.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ func deploymentSpecModified(desired, fetched *appsv1.Deployment) bool {
210210
return true
211211
}
212212
for _, desiredVolume := range desired.Spec.Template.Spec.Volumes {
213-
if desiredVolume.Secret != nil && desiredVolume.Secret.Items != nil {
213+
if desiredVolume.Secret != nil {
214214
for _, fetchedVolume := range fetched.Spec.Template.Spec.Volumes {
215215
if !reflect.DeepEqual(desiredVolume.Secret.Items, fetchedVolume.Secret.Items) {
216216
return true
@@ -219,7 +219,6 @@ func deploymentSpecModified(desired, fetched *appsv1.Deployment) bool {
219219
return true
220220
}
221221
}
222-
223222
}
224223
}
225224

pkg/controller/external_secrets/certificate.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,11 @@ func (r *Reconciler) createOrApplyCertificate(esc *operatorv1alpha1.ExternalSecr
8282
func (r *Reconciler) getCertificateObject(esc *operatorv1alpha1.ExternalSecretsConfig, resourceLabels map[string]string, fileName string) (*certmanagerv1.Certificate, error) {
8383
certificate := common.DecodeCertificateObjBytes(assets.MustAsset(fileName))
8484

85+
// update the secret name in the Certificate resource of the webhook component.
86+
if fileName == webhookCertificateAssetName {
87+
certificate.Spec.SecretName = certmanagerTLSSecretWebhook
88+
}
89+
8590
updateNamespace(certificate, esc)
8691
common.UpdateResourceLabels(certificate, resourceLabels)
8792

pkg/controller/external_secrets/constants.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ const (
4848
// externalsecretsDefaultNamespace is the namespace where the `external-secrets` operand required resources
4949
// will be created, when ExternalSecretsConfig.Spec.Namespace is not set.
5050
externalsecretsDefaultNamespace = "external-secrets"
51+
52+
// certmanagerTLSSecretWebhook is the TLS secret created by cert-manager for the webhook component. A different
53+
// name is used to avoiding clash with the secret created by the inbuilt cert-controller component.
54+
certmanagerTLSSecretWebhook = "external-secrets-webhook-cm"
5155
)
5256

5357
var (

pkg/controller/external_secrets/deployments.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ func (r *Reconciler) getDeploymentObject(assetName string, esc *operatorv1alpha1
123123
checkInterval = esc.Spec.ApplicationConfig.WebhookConfig.CertificateCheckInterval.Duration.String()
124124
}
125125
updateWebhookContainerSpec(deployment, image, logLevel, checkInterval)
126+
updateWebhookVolumeConfig(deployment, esc)
126127
case certControllerDeploymentAssetName:
127128
updateCertControllerContainerSpec(deployment, image, logLevel)
128129
case bitwardenDeploymentAssetName:
@@ -389,3 +390,22 @@ func updateBitwardenServerContainerSpec(deployment *appsv1.Deployment, image str
389390
}
390391
}
391392
}
393+
394+
func updateWebhookVolumeConfig(deployment *appsv1.Deployment, esc *operatorv1alpha1.ExternalSecretsConfig) {
395+
if isCertManagerConfigEnabled(esc) {
396+
const certsVolumeName = "certs"
397+
if deployment.Spec.Template.Spec.Volumes == nil {
398+
deployment.Spec.Template.Spec.Volumes = append(deployment.Spec.Template.Spec.Volumes, corev1.Volume{
399+
Name: certsVolumeName,
400+
})
401+
}
402+
for i := range deployment.Spec.Template.Spec.Volumes {
403+
if deployment.Spec.Template.Spec.Volumes[i].Name == certsVolumeName {
404+
if deployment.Spec.Template.Spec.Volumes[i].Secret == nil {
405+
deployment.Spec.Template.Spec.Volumes[i].Secret = &corev1.SecretVolumeSource{}
406+
}
407+
deployment.Spec.Template.Spec.Volumes[i].Secret.SecretName = certmanagerTLSSecretWebhook
408+
}
409+
}
410+
}
411+
}

0 commit comments

Comments
 (0)