@@ -355,15 +355,109 @@ mod test {
355355 } ,
356356 } ;
357357
358+ /// The test data for [`v1alpha1`] and [`v1alpha2`] is identical except for the names of the
359+ /// `certManager` backend variant and the `generateSamAccountName` field, both of which were
360+ /// renamed in v1alpha2. The differing names are templated in via `{{cert_manager_backend}}`
361+ /// and `{{generate_sam_account_name}}` so that the YAML can be shared between both versions.
362+ fn secret_class_roundtrip_test_data (
363+ cert_manager_backend : & str ,
364+ generate_sam_account_name : & str ,
365+ ) -> String {
366+ indoc:: indoc! { "
367+ - backend:
368+ autoTls:
369+ ca:
370+ secret:
371+ name: secret-provisioner-tls-ca
372+ namespace: default
373+ autoGenerate: true
374+ caCertificateLifetime: 100d
375+ caCertificateRetirementDuration: 1d
376+ keyGeneration:
377+ rsa:
378+ length: 3072
379+ additionalTrustRoots:
380+ - configMap:
381+ name: tls-root-ca-config-map
382+ namespace: default
383+ - secret:
384+ name: tls-root-ca-secret
385+ namespace: default
386+ maxCertificateLifetime: 31d
387+ - backend:
388+ k8sSearch:
389+ searchNamespace:
390+ name: default
391+ trustStoreConfigMapName: my-trust-store
392+ - backend:
393+ k8sSearch:
394+ searchNamespace:
395+ pod: {}
396+ - backend:
397+ {{cert_manager_backend}}:
398+ issuer:
399+ kind: ClusterIssuer
400+ name: secret-operator-issuer
401+ defaultCertificateLifetime: 2d
402+ keyGeneration:
403+ rsa:
404+ length: 4096
405+ - backend:
406+ kerberosKeytab:
407+ realmName: CLUSTER.LOCAL
408+ kdc: krb5-kdc.default.svc.cluster.local
409+ admin:
410+ mit:
411+ kadminServer: krb5-kdc.default.svc.cluster.local
412+ adminKeytabSecret:
413+ name: secret-operator-keytab
414+ namespace: default
415+ adminPrincipal: stackable-secret-operator
416+ - backend:
417+ kerberosKeytab:
418+ realmName: SBLE.TEST
419+ kdc: sble-adds.sble.test
420+ admin:
421+ activeDirectory:
422+ ldapServer: sble-adds.sble.test
423+ ldapTlsCaSecret:
424+ name: secret-operator-ad-ca
425+ namespace: default
426+ passwordCacheSecret:
427+ name: secret-operator-ad-passwords
428+ namespace: default
429+ userDistinguishedName: CN=Stackable,CN=Users,DC=sble,DC=test
430+ schemaDistinguishedName: CN=Schema,CN=Configuration,DC=sble,DC=test
431+ {{generate_sam_account_name}}:
432+ prefix: sble-
433+ totalLength: 15
434+ adminKeytabSecret:
435+ name: secret-operator-keytab
436+ namespace: default
437+ adminPrincipal: stackable-secret-operator
438+ " }
439+ . replace ( "{{cert_manager_backend}}" , cert_manager_backend)
440+ . replace ( "{{generate_sam_account_name}}" , generate_sam_account_name)
441+ }
442+
358443 impl RoundtripTestData for v1alpha1:: SecretClassSpec {
359444 fn roundtrip_test_data ( ) -> Vec < Self > {
360- todo ! ( )
445+ stackable_operator:: utils:: yaml_from_str_singleton_map (
446+ & secret_class_roundtrip_test_data (
447+ "experimentalCertManager" ,
448+ "experimentalGenerateSamAccountName" ,
449+ ) ,
450+ )
451+ . expect ( "Failed to parse v1alpha1 SecretClassSpec YAML" )
361452 }
362453 }
363454
364455 impl RoundtripTestData for v1alpha2:: SecretClassSpec {
365456 fn roundtrip_test_data ( ) -> Vec < Self > {
366- todo ! ( )
457+ stackable_operator:: utils:: yaml_from_str_singleton_map (
458+ & secret_class_roundtrip_test_data ( "certManager" , "generateSamAccountName" ) ,
459+ )
460+ . expect ( "Failed to parse v1alpha2 SecretClassSpec YAML" )
367461 }
368462 }
369463
0 commit comments