Skip to content

Commit 0d20f68

Browse files
committed
Add some more missing pieces for provisioning secret
1 parent 8ae01c0 commit 0d20f68

File tree

5 files changed

+34
-1
lines changed

5 files changed

+34
-1
lines changed

internal/controller/provisioner/eventloop.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,16 @@ func newEventLoop(
3131
ngfNamespace string,
3232
dockerSecrets []string,
3333
agentTLSSecret string,
34+
dataplaneKeySecret string,
3435
usageConfig *config.UsageReportConfig,
3536
isOpenshift bool,
3637
) (*events.EventLoop, error) {
3738
nginxResourceLabelPredicate := predicate.NginxLabelPredicate(selector)
3839

39-
secretsToWatch := make([]string, 0, len(dockerSecrets)+4)
40+
secretsToWatch := make([]string, 0, len(dockerSecrets)+5)
4041
secretsToWatch = append(secretsToWatch, agentTLSSecret)
4142
secretsToWatch = append(secretsToWatch, dockerSecrets...)
43+
secretsToWatch = append(secretsToWatch, dataplaneKeySecret)
4244

4345
if usageConfig != nil {
4446
if usageConfig.SecretName != "" {

internal/controller/provisioner/handler.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,12 @@ func (h *eventHandler) HandleEventBatch(ctx context.Context, logger logr.Logger,
124124
}
125125
case *corev1.Secret:
126126
if h.provisioner.isUserSecret(e.NamespacedName.Name) {
127+
fmt.Println("This should be a user secret")
127128
if err := h.deprovisionSecretsForAllGateways(ctx, e.NamespacedName.Name); err != nil {
128129
logger.Error(err, "error removing secrets")
129130
}
130131
} else {
132+
fmt.Println("aparently we are reprovisioning")
131133
if err := h.reprovisionResources(ctx, e); err != nil {
132134
logger.Error(err, "error re-provisioning nginx resources")
133135
}

internal/controller/provisioner/handler_test.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,14 @@ func TestHandleEventBatch_Delete(t *testing.T) {
299299
}
300300
g.Expect(fakeClient.Create(ctx, userDockerSecret)).To(Succeed())
301301

302+
userDataplaneKeySecret := &corev1.Secret{
303+
ObjectMeta: metav1.ObjectMeta{
304+
Name: nginxOneDataplaneKeySecretName,
305+
Namespace: ngfNamespace,
306+
},
307+
}
308+
g.Expect(fakeClient.Create(ctx, userDataplaneKeySecret)).To(Succeed())
309+
302310
upsertEvent := &events.UpsertEvent{Resource: gateway}
303311
batch := events.EventBatch{upsertEvent}
304312
handler.HandleEventBatch(ctx, logger, batch)
@@ -342,6 +350,7 @@ func TestHandleEventBatch_Delete(t *testing.T) {
342350
verifySecret(caTestSecretName, userCASecret)
343351
verifySecret(clientTestSecretName, userClientSSLSecret)
344352
verifySecret(dockerTestSecretName, userDockerSecret)
353+
verifySecret(nginxOneDataplaneKeySecretName, userDataplaneKeySecret)
345354

346355
// delete Gateway when provisioner is not leader
347356
provisioner.leader = false

internal/controller/provisioner/objects.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1190,6 +1190,21 @@ func (p *NginxProvisioner) buildNginxResourceObjectsForDeletion(deploymentNSName
11901190
objects = append(objects, jwtSecret)
11911191
}
11921192

1193+
var dataplaneKeySecretName string
1194+
if p.cfg.NginxOneConsoleTelemetryConfig.DataplaneKeySecretName != "" {
1195+
dataplaneKeySecretName = controller.CreateNginxResourceName(
1196+
deploymentNSName.Name,
1197+
p.cfg.NginxOneConsoleTelemetryConfig.DataplaneKeySecretName,
1198+
)
1199+
dataplaneKeySecret := &corev1.Secret{
1200+
ObjectMeta: metav1.ObjectMeta{
1201+
Name: dataplaneKeySecretName,
1202+
Namespace: deploymentNSName.Namespace,
1203+
},
1204+
}
1205+
objects = append(objects, dataplaneKeySecret)
1206+
}
1207+
11931208
return objects
11941209
}
11951210

internal/controller/provisioner/provisioner.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ func NewNginxProvisioner(
160160
cfg.GatewayPodConfig.Namespace,
161161
cfg.NginxDockerSecretNames,
162162
cfg.AgentTLSSecretName,
163+
cfg.NginxOneConsoleTelemetryConfig.DataplaneKeySecretName,
163164
cfg.PlusUsageConfig,
164165
isOpenshift,
165166
)
@@ -443,6 +444,10 @@ func (p *NginxProvisioner) isUserSecret(name string) bool {
443444
return true
444445
}
445446

447+
if p.cfg.NginxOneConsoleTelemetryConfig.DataplaneKeySecretName == name {
448+
return true
449+
}
450+
446451
if p.cfg.PlusUsageConfig != nil {
447452
return name == p.cfg.PlusUsageConfig.SecretName ||
448453
name == p.cfg.PlusUsageConfig.CASecretName ||

0 commit comments

Comments
 (0)