mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 05:40:42 +00:00 
			
		
		
		
	Merge pull request #67383 from stlaz/enc_config_promotion
Introduce apiserver.config.k8s.io/v1 and use standard method for parsing encryption config file
This commit is contained in:
		| @@ -43,6 +43,7 @@ go_test( | ||||
|         "//staging/src/k8s.io/apiserver/pkg/apis/audit:go_default_library", | ||||
|         "//staging/src/k8s.io/apiserver/pkg/apis/audit/v1:go_default_library", | ||||
|         "//staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1:go_default_library", | ||||
|         "//staging/src/k8s.io/apiserver/pkg/apis/config/v1:go_default_library", | ||||
|         "//staging/src/k8s.io/apiserver/pkg/authentication/group:go_default_library", | ||||
|         "//staging/src/k8s.io/apiserver/pkg/authentication/request/bearertoken:go_default_library", | ||||
|         "//staging/src/k8s.io/apiserver/pkg/authentication/user:go_default_library", | ||||
| @@ -50,7 +51,6 @@ go_test( | ||||
|         "//staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory:go_default_library", | ||||
|         "//staging/src/k8s.io/apiserver/pkg/features:go_default_library", | ||||
|         "//staging/src/k8s.io/apiserver/pkg/registry/generic/registry:go_default_library", | ||||
|         "//staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig:go_default_library", | ||||
|         "//staging/src/k8s.io/apiserver/pkg/storage/value:go_default_library", | ||||
|         "//staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/aes:go_default_library", | ||||
|         "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", | ||||
| @@ -127,7 +127,7 @@ go_library( | ||||
|         "//cmd/kube-apiserver/app/testing:go_default_library", | ||||
|         "//staging/src/k8s.io/api/core/v1:go_default_library", | ||||
|         "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", | ||||
|         "//staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig:go_default_library", | ||||
|         "//staging/src/k8s.io/apiserver/pkg/apis/config/v1:go_default_library", | ||||
|         "//staging/src/k8s.io/apiserver/pkg/storage/storagebackend:go_default_library", | ||||
|         "//staging/src/k8s.io/apiserver/pkg/storage/value:go_default_library", | ||||
|         "//staging/src/k8s.io/client-go/kubernetes:go_default_library", | ||||
|   | ||||
| @@ -39,8 +39,8 @@ const ( | ||||
| 	dekKeySizeLen = 2 | ||||
|  | ||||
| 	kmsConfigYAML = ` | ||||
| kind: EncryptionConfig | ||||
| apiVersion: v1 | ||||
| kind: EncryptionConfiguration | ||||
| apiVersion: apiserver.config.k8s.io/v1 | ||||
| resources: | ||||
|   - resources: | ||||
|     - secrets | ||||
|   | ||||
| @@ -23,7 +23,7 @@ import ( | ||||
| 	"fmt" | ||||
| 	"testing" | ||||
|  | ||||
| 	"k8s.io/apiserver/pkg/server/options/encryptionconfig" | ||||
| 	apiserverconfigv1 "k8s.io/apiserver/pkg/apis/config/v1" | ||||
| 	"k8s.io/apiserver/pkg/storage/value" | ||||
| 	aestransformer "k8s.io/apiserver/pkg/storage/value/encrypt/aes" | ||||
| ) | ||||
| @@ -33,8 +33,8 @@ const ( | ||||
| 	aesCBCPrefix = "k8s:enc:aescbc:v1:key1:" | ||||
|  | ||||
| 	aesGCMConfigYAML = ` | ||||
| kind: EncryptionConfig | ||||
| apiVersion: v1 | ||||
| kind: EncryptionConfiguration | ||||
| apiVersion: apiserver.config.k8s.io/v1 | ||||
| resources: | ||||
|   - resources: | ||||
|     - secrets | ||||
| @@ -46,8 +46,8 @@ resources: | ||||
| ` | ||||
|  | ||||
| 	aesCBCConfigYAML = ` | ||||
| kind: EncryptionConfig | ||||
| apiVersion: v1 | ||||
| kind: EncryptionConfiguration | ||||
| apiVersion: apiserver.config.k8s.io/v1 | ||||
| resources: | ||||
|   - resources: | ||||
|     - secrets | ||||
| @@ -59,8 +59,8 @@ resources: | ||||
| ` | ||||
|  | ||||
| 	identityConfigYAML = ` | ||||
| kind: EncryptionConfig | ||||
| apiVersion: v1 | ||||
| kind: EncryptionConfiguration | ||||
| apiVersion: apiserver.config.k8s.io/v1 | ||||
| resources: | ||||
|   - resources: | ||||
|     - secrets | ||||
| @@ -72,7 +72,7 @@ resources: | ||||
| // TestSecretsShouldBeEnveloped is an integration test between KubeAPI and etcd that checks: | ||||
| // 1. Secrets are encrypted on write | ||||
| // 2. Secrets are decrypted on read | ||||
| // when EncryptionConfig is passed to KubeAPI server. | ||||
| // when EncryptionConfiguration is passed to KubeAPI server. | ||||
| func TestSecretsShouldBeTransformed(t *testing.T) { | ||||
| 	var testCases = []struct { | ||||
| 		transformerConfigContent string | ||||
| @@ -128,7 +128,7 @@ func runBenchmark(b *testing.B, transformerConfig string) { | ||||
| } | ||||
|  | ||||
| func unSealWithGCMTransformer(cipherText []byte, ctx value.Context, | ||||
| 	transformerConfig encryptionconfig.ProviderConfig) ([]byte, error) { | ||||
| 	transformerConfig apiserverconfigv1.ProviderConfiguration) ([]byte, error) { | ||||
|  | ||||
| 	block, err := newAESCipher(transformerConfig.AESGCM.Keys[0].Secret) | ||||
| 	if err != nil { | ||||
| @@ -146,7 +146,7 @@ func unSealWithGCMTransformer(cipherText []byte, ctx value.Context, | ||||
| } | ||||
|  | ||||
| func unSealWithCBCTransformer(cipherText []byte, ctx value.Context, | ||||
| 	transformerConfig encryptionconfig.ProviderConfig) ([]byte, error) { | ||||
| 	transformerConfig apiserverconfigv1.ProviderConfiguration) ([]byte, error) { | ||||
|  | ||||
| 	block, err := newAESCipher(transformerConfig.AESCBC.Keys[0].Secret) | ||||
| 	if err != nil { | ||||
|   | ||||
| @@ -33,7 +33,7 @@ import ( | ||||
|  | ||||
| 	corev1 "k8s.io/api/core/v1" | ||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||
| 	"k8s.io/apiserver/pkg/server/options/encryptionconfig" | ||||
| 	apiserverconfigv1 "k8s.io/apiserver/pkg/apis/config/v1" | ||||
| 	"k8s.io/apiserver/pkg/storage/storagebackend" | ||||
| 	"k8s.io/apiserver/pkg/storage/value" | ||||
| 	"k8s.io/client-go/kubernetes" | ||||
| @@ -51,7 +51,7 @@ const ( | ||||
| 	metricsPrefix            = "apiserver_storage_" | ||||
| ) | ||||
|  | ||||
| type unSealSecret func(cipherText []byte, ctx value.Context, config encryptionconfig.ProviderConfig) ([]byte, error) | ||||
| type unSealSecret func(cipherText []byte, ctx value.Context, config apiserverconfigv1.ProviderConfiguration) ([]byte, error) | ||||
|  | ||||
| type transformTest struct { | ||||
| 	logger            kubeapiservertesting.Logger | ||||
| @@ -186,8 +186,8 @@ func (e *transformTest) createEncryptionConfig() (string, error) { | ||||
| 	return tempDir, nil | ||||
| } | ||||
|  | ||||
| func (e *transformTest) getEncryptionConfig() (*encryptionconfig.ProviderConfig, error) { | ||||
| 	var config encryptionconfig.EncryptionConfig | ||||
| func (e *transformTest) getEncryptionConfig() (*apiserverconfigv1.ProviderConfiguration, error) { | ||||
| 	var config apiserverconfigv1.EncryptionConfiguration | ||||
| 	err := yaml.Unmarshal([]byte(e.transformerConfig), &config) | ||||
| 	if err != nil { | ||||
| 		return nil, fmt.Errorf("failed to extract transformer key: %v", err) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user