Skip to content

Commit 65a53da

Browse files
authored
Use dedicated secret for managed EKS credentials (#3398)
Use dedicated secret for managed EKS credentials Preserve credential sync default Co-authored-by: fanny.jiang <fanny.jiang@datadoghq.com>
1 parent 9720c44 commit 65a53da

3 files changed

Lines changed: 28 additions & 8 deletions

File tree

pkg/fleet/managed_agent_installation.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ const (
4949
fleetPartialConfigVersionPrefix = "partial:"
5050

5151
fleetDatadogAgentName = "datadog-agent"
52-
fleetCredentialSecretName = "datadog-secret"
52+
fleetCredentialSecretName = "datadog-managed-secret"
5353
fleetCredentialAPIKey = "api-key"
5454
)
5555

pkg/fleet/managed_agent_installation_intent_test.go

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -464,10 +464,18 @@ func TestManagedAgentInstallationTerminalStateIsDurableBeforeRemoteConfigComplet
464464
}, 2*time.Second, 10*time.Millisecond)
465465
}
466466

467-
func TestManagedAgentInstallationParksUntilCredentialSecretExists(t *testing.T) {
467+
func TestManagedAgentInstallationIgnoresCustomerCredentialSecretUntilManagedSecretExists(t *testing.T) {
468468
ctx := context.Background()
469+
customerSecret := &corev1.Secret{
470+
ObjectMeta: metav1.ObjectMeta{
471+
Namespace: testManagedAgentInstallationNamespace,
472+
Name: "datadog-secret",
473+
},
474+
Data: map[string][]byte{fleetCredentialAPIKey: []byte("customer-api-key")},
475+
}
469476
daemon, kubeClient, rcClient := testManagedAgentInstallationDaemon(
470477
[]*pbgo.PackageState{{Package: packageDatadogOperator}},
478+
customerSecret,
471479
)
472480
originalRetryDelays := managedAgentInstallationCredentialRetryDelays
473481
managedAgentInstallationCredentialRetryDelays = []time.Duration{0, 0}
@@ -479,7 +487,7 @@ func TestManagedAgentInstallationParksUntilCredentialSecretExists(t *testing.T)
479487
snapshot := managedAgentInstallationIntentSnapshot{raw: raw}
480488

481489
for range len(managedAgentInstallationCredentialRetryDelays) + 1 {
482-
require.ErrorContains(t, daemon.handleManagedAgentInstallationIntent(ctx, snapshot), "credential Secret datadog-agent/datadog-secret is not ready")
490+
require.ErrorContains(t, daemon.handleManagedAgentInstallationIntent(ctx, snapshot), "credential Secret datadog-agent/datadog-managed-secret is not ready")
483491
assert.False(t, daemon.managedAgentInstallationActive)
484492
assert.False(t, daemon.managedAgentInstallationTaskReserved)
485493
}
@@ -493,10 +501,10 @@ func TestManagedAgentInstallationParksUntilCredentialSecretExists(t *testing.T)
493501
assert.False(t, daemon.managedAgentInstallationTaskReserved)
494502
require.True(t, apierrors.IsNotFound(kubeClient.Get(ctx, managedAgentInstallationTarget, &v2alpha1.DatadogAgent{})))
495503

496-
secret := testFleetCredentialSecret()
497-
require.NoError(t, kubeClient.Create(ctx, secret))
504+
managedSecret := testFleetCredentialSecret()
505+
require.NoError(t, kubeClient.Create(ctx, managedSecret))
498506
daemon.managedAgentInstallationUpdates = make(chan struct{}, 1)
499-
daemon.forwardManagedAgentInstallationCredential(secret)
507+
daemon.forwardManagedAgentInstallationCredential(managedSecret)
500508
require.Len(t, daemon.managedAgentInstallationUpdates, 1)
501509
assert.Zero(t, daemon.managedAgentInstallationCredentialRetryIndex)
502510
assert.False(t, daemon.managedAgentInstallationTaskReserved)
@@ -505,7 +513,19 @@ func TestManagedAgentInstallationParksUntilCredentialSecretExists(t *testing.T)
505513
require.NoError(t, err)
506514
require.NotNil(t, persisted)
507515
assert.Equal(t, pbgo.TaskState_DONE, persisted.TaskState)
508-
require.NoError(t, kubeClient.Get(ctx, managedAgentInstallationTarget, &v2alpha1.DatadogAgent{}))
516+
dda := &v2alpha1.DatadogAgent{}
517+
require.NoError(t, kubeClient.Get(ctx, managedAgentInstallationTarget, dda))
518+
require.NotNil(t, dda.Spec.Global)
519+
require.NotNil(t, dda.Spec.Global.Credentials)
520+
require.NotNil(t, dda.Spec.Global.Credentials.APISecret)
521+
assert.Equal(t, "datadog-managed-secret", dda.Spec.Global.Credentials.APISecret.SecretName)
522+
assert.Equal(t, fleetCredentialAPIKey, dda.Spec.Global.Credentials.APISecret.KeyName)
523+
observedCustomerSecret := &corev1.Secret{}
524+
require.NoError(t, kubeClient.Get(ctx, types.NamespacedName{
525+
Namespace: testManagedAgentInstallationNamespace,
526+
Name: "datadog-secret",
527+
}, observedCustomerSecret))
528+
assert.Equal(t, []byte("customer-api-key"), observedCustomerSecret.Data[fleetCredentialAPIKey])
509529
}
510530

511531
func TestManagedAgentInstallationDefersToFleetTask(t *testing.T) {

pkg/fleet/managed_agent_installation_keys_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ var (
1616
}
1717
managedAgentInstallationCredentialKey = types.NamespacedName{
1818
Namespace: testManagedAgentInstallationNamespace,
19-
Name: fleetCredentialSecretName,
19+
Name: "datadog-managed-secret",
2020
}
2121
managedAgentInstallationIntentKey = types.NamespacedName{
2222
Namespace: testManagedAgentInstallationNamespace,

0 commit comments

Comments
 (0)