diff --git a/pkg/certificate/auto/provider.go b/pkg/certificate/auto/provider.go index fe83590..38a75e3 100644 --- a/pkg/certificate/auto/provider.go +++ b/pkg/certificate/auto/provider.go @@ -33,22 +33,22 @@ const ( type Provider struct { client.Client + config *interfaces.Config } var _ interfaces.Provider = (*Provider)(nil) func New(c client.Client) interfaces.Provider { return &Provider{ - c, + Client: c, + config: nil, } } -var userAutoConfig *interfaces.Config - func (ac *Provider) EnsureCertificateSecret(ctx context.Context, secretKey client.ObjectKey, cfg *interfaces.Config) error { // Save the user defined AutoConfig so that it can be returned from GetCertificateConfig - userAutoConfig = cfg + ac.config = cfg var secret corev1.Secret err := ac.Get(ctx, secretKey, &secret) @@ -162,8 +162,8 @@ func (ac *Provider) GetCertificateConfig(ctx context.Context, return nil, fmt.Errorf("failed to get certificate: %w", err) } - if userAutoConfig != nil { - return userAutoConfig, nil + if ac.config != nil { + return ac.config, nil } return nil, fmt.Errorf("failed to get user-defined autoConfig") diff --git a/test/e2e/auto_provider_test.go b/test/e2e/auto_provider_test.go index e9aa9bf..056232a 100644 --- a/test/e2e/auto_provider_test.go +++ b/test/e2e/auto_provider_test.go @@ -80,6 +80,10 @@ func TestAutoProvider(t *testing.T) { cl := cfg.Client() acProvider := auto.New(cl.Resources().GetControllerRuntimeClient()) secretKey := client.ObjectKey{Name: cmCertificateName, Namespace: cmCertificateNamespace} + err := acProvider.EnsureCertificateSecret(ctx, secretKey, cmConfig) + if err != nil { + t.Fatalf("Auto Provider Certificate could not be created: %v", err) + } config, err := acProvider.GetCertificateConfig(ctx, secretKey) if err != nil { t.Fatalf("Auto Certificate not found: %v", err) @@ -183,6 +187,14 @@ func TestClusterAutoCertCreation(t *testing.T) { ); err != nil { t.Fatalf("timed out waiting for certificate: %s", err) } + + return ctx + }, + ) + + feature.Assess("Wait for StatefulSet readiness", + func(ctx context.Context, t *testing.T, c *envconf.Config) context.Context { + waitForSTSReadiness(t, c, etcdClusterName, size) return ctx }, )