|
|
|
@@ -177,41 +177,71 @@ func TestEncryptionProviderConfigCorrect(t *testing.T) {
|
|
|
|
|
// Creates compound/prefix transformers with different ordering of available transformers.
|
|
|
|
|
// Transforms data using one of them, and tries to untransform using the others.
|
|
|
|
|
// Repeats this for all possible combinations.
|
|
|
|
|
// Math for GracePeriod is explained at - https://github.com/kubernetes/kubernetes/blob/c9ed04762f94a319d7b1fb718dc345491a32bea6/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/config.go#L159-L163
|
|
|
|
|
expectedKMSCloseGracePeriod := 46 * time.Second
|
|
|
|
|
correctConfigWithIdentityFirst := "testdata/valid-configs/identity-first.yaml"
|
|
|
|
|
identityFirstEncryptionConfiguration, err := LoadEncryptionConfig(ctx, correctConfigWithIdentityFirst, false)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("error while parsing configuration file: %s.\nThe file was:\n%s", err, correctConfigWithIdentityFirst)
|
|
|
|
|
}
|
|
|
|
|
if identityFirstEncryptionConfiguration.KMSCloseGracePeriod != expectedKMSCloseGracePeriod {
|
|
|
|
|
t.Fatalf("KMSCloseGracePeriod mismatch (-want +got):\n%s", cmp.Diff(expectedKMSCloseGracePeriod, identityFirstEncryptionConfiguration.KMSCloseGracePeriod))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Math for GracePeriod is explained at - https://github.com/kubernetes/kubernetes/blob/c9ed04762f94a319d7b1fb718dc345491a32bea6/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/config.go#L159-L163
|
|
|
|
|
expectedKMSCloseGracePeriod = 32 * time.Second
|
|
|
|
|
correctConfigWithAesGcmFirst := "testdata/valid-configs/aes-gcm-first.yaml"
|
|
|
|
|
aesGcmFirstEncryptionConfiguration, err := LoadEncryptionConfig(ctx, correctConfigWithAesGcmFirst, false)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("error while parsing configuration file: %s.\nThe file was:\n%s", err, correctConfigWithAesGcmFirst)
|
|
|
|
|
}
|
|
|
|
|
if aesGcmFirstEncryptionConfiguration.KMSCloseGracePeriod != expectedKMSCloseGracePeriod {
|
|
|
|
|
t.Fatalf("KMSCloseGracePeriod mismatch (-want +got):\n%s", cmp.Diff(expectedKMSCloseGracePeriod, aesGcmFirstEncryptionConfiguration.KMSCloseGracePeriod))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Math for GracePeriod is explained at - https://github.com/kubernetes/kubernetes/blob/c9ed04762f94a319d7b1fb718dc345491a32bea6/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/config.go#L159-L163
|
|
|
|
|
expectedKMSCloseGracePeriod = 26 * time.Second
|
|
|
|
|
correctConfigWithAesCbcFirst := "testdata/valid-configs/aes-cbc-first.yaml"
|
|
|
|
|
aesCbcFirstEncryptionConfiguration, err := LoadEncryptionConfig(ctx, correctConfigWithAesCbcFirst, false)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("error while parsing configuration file: %s.\nThe file was:\n%s", err, correctConfigWithAesCbcFirst)
|
|
|
|
|
}
|
|
|
|
|
if aesCbcFirstEncryptionConfiguration.KMSCloseGracePeriod != expectedKMSCloseGracePeriod {
|
|
|
|
|
t.Fatalf("KMSCloseGracePeriod mismatch (-want +got):\n%s", cmp.Diff(expectedKMSCloseGracePeriod, aesCbcFirstEncryptionConfiguration.KMSCloseGracePeriod))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Math for GracePeriod is explained at - https://github.com/kubernetes/kubernetes/blob/c9ed04762f94a319d7b1fb718dc345491a32bea6/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/config.go#L159-L163
|
|
|
|
|
expectedKMSCloseGracePeriod = 14 * time.Second
|
|
|
|
|
correctConfigWithSecretboxFirst := "testdata/valid-configs/secret-box-first.yaml"
|
|
|
|
|
secretboxFirstEncryptionConfiguration, err := LoadEncryptionConfig(ctx, correctConfigWithSecretboxFirst, false)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("error while parsing configuration file: %s.\nThe file was:\n%s", err, correctConfigWithSecretboxFirst)
|
|
|
|
|
}
|
|
|
|
|
if secretboxFirstEncryptionConfiguration.KMSCloseGracePeriod != expectedKMSCloseGracePeriod {
|
|
|
|
|
t.Fatalf("KMSCloseGracePeriod mismatch (-want +got):\n%s", cmp.Diff(expectedKMSCloseGracePeriod, secretboxFirstEncryptionConfiguration.KMSCloseGracePeriod))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Math for GracePeriod is explained at - https://github.com/kubernetes/kubernetes/blob/c9ed04762f94a319d7b1fb718dc345491a32bea6/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/config.go#L159-L163
|
|
|
|
|
expectedKMSCloseGracePeriod = 34 * time.Second
|
|
|
|
|
correctConfigWithKMSFirst := "testdata/valid-configs/kms-first.yaml"
|
|
|
|
|
kmsFirstEncryptionConfiguration, err := LoadEncryptionConfig(ctx, correctConfigWithKMSFirst, false)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("error while parsing configuration file: %s.\nThe file was:\n%s", err, correctConfigWithKMSFirst)
|
|
|
|
|
}
|
|
|
|
|
if kmsFirstEncryptionConfiguration.KMSCloseGracePeriod != expectedKMSCloseGracePeriod {
|
|
|
|
|
t.Fatalf("KMSCloseGracePeriod mismatch (-want +got):\n%s", cmp.Diff(expectedKMSCloseGracePeriod, kmsFirstEncryptionConfiguration.KMSCloseGracePeriod))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Math for GracePeriod is explained at - https://github.com/kubernetes/kubernetes/blob/c9ed04762f94a319d7b1fb718dc345491a32bea6/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/config.go#L159-L163
|
|
|
|
|
expectedKMSCloseGracePeriod = 42 * time.Second
|
|
|
|
|
correctConfigWithKMSv2First := "testdata/valid-configs/kmsv2-first.yaml"
|
|
|
|
|
kmsv2FirstEncryptionConfiguration, err := LoadEncryptionConfig(ctx, correctConfigWithKMSv2First, false)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("error while parsing configuration file: %s.\nThe file was:\n%s", err, correctConfigWithKMSv2First)
|
|
|
|
|
}
|
|
|
|
|
if kmsv2FirstEncryptionConfiguration.KMSCloseGracePeriod != expectedKMSCloseGracePeriod {
|
|
|
|
|
t.Fatalf("KMSCloseGracePeriod mismatch (-want +got):\n%s", cmp.Diff(expectedKMSCloseGracePeriod, kmsv2FirstEncryptionConfiguration.KMSCloseGracePeriod))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Pick the transformer for any of the returned resources.
|
|
|
|
|
identityFirstTransformer := identityFirstEncryptionConfiguration.Transformers[schema.ParseGroupResource("secrets")]
|
|
|
|
|