test: fixes hot reload flake

Signed-off-by: Nilekh Chaudhari <1626598+nilekhc@users.noreply.github.com>
This commit is contained in:
Nilekh Chaudhari 2023-10-25 01:14:00 +00:00
parent 71a1565d06
commit a92c1269e2
No known key found for this signature in database
GPG Key ID: 71276AA0BA8ED691

View File

@ -394,9 +394,7 @@ resources:
// start new KMS Plugin
_ = mock.NewBase64Plugin(t, "@new-kms-provider.sock")
// update encryption config
if err := os.WriteFile(filepath.Join(test.configDir, encryptionConfigFileName), []byte(encryptionConfigWithNewProvider), 0644); err != nil {
t.Fatalf("failed to update encryption config, err: %v", err)
}
updateFile(t, test.configDir, encryptionConfigFileName, []byte(encryptionConfigWithNewProvider))
wantPrefixForSecrets := "k8s:enc:kms:v1:new-kms-provider-for-secrets:"
@ -493,9 +491,7 @@ resources:
`
// update encryption config and wait for hot reload
if err := os.WriteFile(filepath.Join(test.configDir, encryptionConfigFileName), []byte(encryptionConfigWithoutOldProvider), 0644); err != nil {
t.Fatalf("failed to update encryption config, err: %v", err)
}
updateFile(t, test.configDir, encryptionConfigFileName, []byte(encryptionConfigWithoutOldProvider))
// wait for config to be observed
verifyIfKMSTransformersSwapped(t, wantPrefixForSecrets, test)
@ -997,6 +993,29 @@ func verifyIfKMSTransformersSwapped(t *testing.T, wantPrefix string, test *trans
}
}
func updateFile(t *testing.T, configDir, filename string, newContent []byte) {
t.Helper()
// Create a temporary file
tempFile, err := os.CreateTemp(configDir, "tempfile")
if err != nil {
t.Fatal(err)
}
defer tempFile.Close()
// Write the new content to the temporary file
_, err = tempFile.Write(newContent)
if err != nil {
t.Fatal(err)
}
// Atomically replace the original file with the temporary file
err = os.Rename(tempFile.Name(), filepath.Join(configDir, filename))
if err != nil {
t.Fatal(err)
}
}
func TestKMSHealthz(t *testing.T) {
encryptionConfig := `
kind: EncryptionConfiguration