@@ -43,18 +43,18 @@ func TestKustomizationReconciler_Decryptor(t *testing.T) {
4343 g .Expect (err ).NotTo (HaveOccurred (), "failed to create vault client" )
4444
4545 // create a master key on the vault transit engine
46- path , data := "sops/keys/firstkey " , map [string ]interface {}{"type" : "rsa-4096" }
46+ path , data := "sops/keys/vault " , map [string ]interface {}{"type" : "rsa-4096" }
4747 _ , err = cli .Logical ().Write (path , data )
4848 g .Expect (err ).NotTo (HaveOccurred (), "failed to write key" )
4949
5050 // encrypt the testdata vault secret
51- cmd := exec .Command ("sops" , "--hc-vault-transit" , cli .Address ()+ "/v1/sops/keys/firstkey " , "--encrypt" , "--encrypted-regex" , "^(data|stringData)$" , "--in-place" , "./testdata/sops/secret. vault.yaml" )
51+ cmd := exec .Command ("sops" , "--hc-vault-transit" , cli .Address ()+ "/v1/sops/keys/vault " , "--encrypt" , "--encrypted-regex" , "^(data|stringData)$" , "--in-place" , "./testdata/sops/algorithms/ vault.yaml" )
5252 err = cmd .Run ()
5353 g .Expect (err ).NotTo (HaveOccurred (), "failed to encrypt file" )
5454
5555 // defer the testdata vault secret decryption, to leave a clean testdata vault secret
5656 defer func () {
57- cmd := exec .Command ("sops" , "--hc-vault-transit" , cli .Address ()+ "/v1/sops/keys/firstkey" , "--decrypt" , "--encrypted-regex" , "^(data|stringData)$" , "--in-place" , "./testdata/sops/secret. vault.yaml" )
57+ cmd := exec .Command ("sops" , "--hc-vault-transit" , cli .Address ()+ "/v1/sops/keys/firstkey" , "--decrypt" , "--encrypted-regex" , "^(data|stringData)$" , "--in-place" , "./testdata/sops/algorithms/ vault.yaml" )
5858 err = cmd .Run ()
5959 }()
6060
@@ -70,36 +70,23 @@ func TestKustomizationReconciler_Decryptor(t *testing.T) {
7070 artifactChecksum , err := testServer .ArtifactFromDir ("testdata/sops" , artifactName )
7171 g .Expect (err ).ToNot (HaveOccurred ())
7272
73- overlayArtifactName := "sops-" + randStringRunes (5 )
74- overlayChecksum , err := testServer .ArtifactFromDir ("testdata/test-dotenv" , overlayArtifactName )
75- g .Expect (err ).ToNot (HaveOccurred ())
76-
7773 repositoryName := types.NamespacedName {
7874 Name : fmt .Sprintf ("sops-%s" , randStringRunes (5 )),
7975 Namespace : id ,
8076 }
8177
82- overlayRepositoryName := types.NamespacedName {
83- Name : fmt .Sprintf ("sops-%s" , randStringRunes (5 )),
84- Namespace : id ,
85- }
86-
8778 err = applyGitRepository (repositoryName , artifactName , "main/" + artifactChecksum )
8879 g .Expect (err ).NotTo (HaveOccurred ())
8980
90- err = applyGitRepository (overlayRepositoryName , overlayArtifactName , "main/" + overlayChecksum )
91- g .Expect (err ).NotTo (HaveOccurred ())
92-
93- pgpKey , err := os .ReadFile ("testdata/sops/pgp.asc" )
81+ pgpKey , err := os .ReadFile ("testdata/sops/keys/pgp.asc" )
9482 g .Expect (err ).ToNot (HaveOccurred ())
95- ageKey , err := os .ReadFile ("testdata/sops/age.txt" )
83+ ageKey , err := os .ReadFile ("testdata/sops/keys/ age.txt" )
9684 g .Expect (err ).ToNot (HaveOccurred ())
9785
9886 sopsSecretKey := types.NamespacedName {
9987 Name : "sops-" + randStringRunes (5 ),
10088 Namespace : id ,
10189 }
102-
10390 sopsSecret := & corev1.Secret {
10491 ObjectMeta : metav1.ObjectMeta {
10592 Name : sopsSecretKey .Name ,
@@ -153,64 +140,40 @@ func TestKustomizationReconciler_Decryptor(t *testing.T) {
153140 return obj .Status .LastAppliedRevision == "main/" + artifactChecksum
154141 }, timeout , time .Second ).Should (BeTrue ())
155142
156- overlayKustomizationName := fmt .Sprintf ("sops-%s" , randStringRunes (5 ))
157- overlayKs := kustomization .DeepCopy ()
158- overlayKs .ResourceVersion = ""
159- overlayKs .Name = overlayKustomizationName
160- overlayKs .Spec .SourceRef .Name = overlayRepositoryName .Name
161- overlayKs .Spec .SourceRef .Namespace = overlayRepositoryName .Namespace
162- overlayKs .Spec .Path = "./testdata/test-dotenv/overlays"
163-
164- g .Expect (k8sClient .Create (context .TODO (), overlayKs )).To (Succeed ())
165-
166- g .Eventually (func () bool {
167- var obj kustomizev1.Kustomization
168- _ = k8sClient .Get (context .Background (), client .ObjectKeyFromObject (overlayKs ), & obj )
169- return obj .Status .LastAppliedRevision == "main/" + overlayChecksum
170- }, timeout , time .Second ).Should (BeTrue ())
171-
172143 t .Run ("decrypts SOPS secrets" , func (t * testing.T ) {
173144 g := NewWithT (t )
174145
175- var pgpSecret corev1.Secret
176- g .Expect (k8sClient .Get (context .TODO (), types.NamespacedName {Name : "sops-pgp" , Namespace : id }, & pgpSecret )).To (Succeed ())
177- g .Expect (pgpSecret .Data ["secret" ]).To (Equal ([]byte (`my-sops-pgp-secret` )))
178-
179- var ageSecret corev1.Secret
180- g .Expect (k8sClient .Get (context .TODO (), types.NamespacedName {Name : "sops-age" , Namespace : id }, & ageSecret )).To (Succeed ())
181- g .Expect (ageSecret .Data ["secret" ]).To (Equal ([]byte (`my-sops-age-secret` )))
182-
183- var daySecret corev1.Secret
184- g .Expect (k8sClient .Get (context .TODO (), types.NamespacedName {Name : "sops-day" , Namespace : id }, & daySecret )).To (Succeed ())
185- g .Expect (string (daySecret .Data ["secret" ])).To (Equal ("day=Tuesday\n " ))
186-
187- var yearSecret corev1.Secret
188- g .Expect (k8sClient .Get (context .TODO (), types.NamespacedName {Name : "sops-year" , Namespace : id }, & yearSecret )).To (Succeed ())
189- g .Expect (string (yearSecret .Data ["year" ])).To (Equal ("2017" ))
190-
191- var unencryptedSecret corev1.Secret
192- g .Expect (k8sClient .Get (context .TODO (), types.NamespacedName {Name : "unencrypted-sops-year" , Namespace : id }, & unencryptedSecret )).To (Succeed ())
193- g .Expect (string (unencryptedSecret .Data ["year" ])).To (Equal ("2021" ))
194-
195- var year1Secret corev1.Secret
196- g .Expect (k8sClient .Get (context .TODO (), types.NamespacedName {Name : "sops-year1" , Namespace : id }, & year1Secret )).To (Succeed ())
197- g .Expect (string (year1Secret .Data ["year" ])).To (Equal ("year1" ))
198-
199- var year2Secret corev1.Secret
200- g .Expect (k8sClient .Get (context .TODO (), types.NamespacedName {Name : "sops-year2" , Namespace : id }, & year2Secret )).To (Succeed ())
201- g .Expect (string (year2Secret .Data ["year" ])).To (Equal ("year2" ))
202-
203- var year3Secret corev1.Secret
204- g .Expect (k8sClient .Get (context .TODO (), types.NamespacedName {Name : "sops-year3" , Namespace : id }, & year3Secret )).To (Succeed ())
205- g .Expect (string (year3Secret .Data ["year" ])).To (Equal ("year3" ))
206-
207- var encodedSecret corev1.Secret
208- g .Expect (k8sClient .Get (context .TODO (), types.NamespacedName {Name : "sops-month" , Namespace : id }, & encodedSecret )).To (Succeed ())
209- g .Expect (string (encodedSecret .Data ["month.yaml" ])).To (Equal ("month: May\n " ))
210-
211- var hcvaultSecret corev1.Secret
212- g .Expect (k8sClient .Get (context .TODO (), types.NamespacedName {Name : "sops-hcvault" , Namespace : id }, & hcvaultSecret )).To (Succeed ())
213- g .Expect (string (hcvaultSecret .Data ["secret" ])).To (Equal ("my-sops-vault-secret\n " ))
146+ secretNames := []string {
147+ "sops-algo-age" ,
148+ "sops-algo-pgp" ,
149+ "sops-algo-vault" ,
150+ "sops-component" ,
151+ "sops-envs-secret" ,
152+ "sops-files-secret" ,
153+ "sops-inside-secret" ,
154+ "sops-remote-secret" ,
155+ }
156+ for _ , name := range secretNames {
157+ var secret corev1.Secret
158+ g .Expect (k8sClient .Get (context .TODO (), types.NamespacedName {Name : name , Namespace : id }, & secret )).To (Succeed ())
159+ g .Expect (string (secret .Data ["key" ])).To (Equal ("value" ), fmt .Sprintf ("failed on secret %s" , name ))
160+ }
161+
162+ configMapNames := []string {
163+ "sops-envs-configmap" ,
164+ "sops-files-configmap" ,
165+ "sops-remote-configmap" ,
166+ }
167+ for _ , name := range configMapNames {
168+ var configMap corev1.ConfigMap
169+ g .Expect (k8sClient .Get (context .TODO (), types.NamespacedName {Name : name , Namespace : id }, & configMap )).To (Succeed ())
170+ g .Expect (string (configMap .Data ["key" ])).To (Equal ("value" ), fmt .Sprintf ("failed on configmap %s" , name ))
171+ }
172+
173+ var patchedSecret corev1.Secret
174+ g .Expect (k8sClient .Get (context .TODO (), types.NamespacedName {Name : "sops-patches-secret" , Namespace : id }, & patchedSecret )).To (Succeed ())
175+ g .Expect (string (patchedSecret .Data ["key" ])).To (Equal ("merge1" ))
176+ g .Expect (string (patchedSecret .Data ["merge2" ])).To (Equal ("merge2" ))
214177 })
215178
216179 t .Run ("does not emit change events for identical secrets" , func (t * testing.T ) {
0 commit comments