helpers_test.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package v2
  2. import (
  3. "context"
  4. "testing"
  5. "time"
  6. . "github.com/onsi/gomega"
  7. corev1 "k8s.io/api/core/v1"
  8. metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
  9. "k8s.io/apimachinery/pkg/runtime"
  10. "sigs.k8s.io/controller-runtime/pkg/client"
  11. "sigs.k8s.io/controller-runtime/pkg/client/fake"
  12. "github.com/external-secrets/external-secrets-e2e/framework"
  13. esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
  14. k8sv2alpha1 "github.com/external-secrets/external-secrets/apis/provider/kubernetes/v2alpha1"
  15. )
  16. func TestCreateKubernetesProviderUsesProvidedCABundle(t *testing.T) {
  17. t.Helper()
  18. RegisterTestingT(t)
  19. scheme := runtime.NewScheme()
  20. Expect(corev1.AddToScheme(scheme)).To(Succeed())
  21. Expect(k8sv2alpha1.AddToScheme(scheme)).To(Succeed())
  22. cl := fake.NewClientBuilder().WithScheme(scheme).Build()
  23. f := &framework.Framework{
  24. CRClient: cl,
  25. }
  26. CreateKubernetesProvider(f, "provider-ns", "example", "remote-ns", "eso-auth", nil, []byte("inline-ca"))
  27. var provider k8sv2alpha1.Kubernetes
  28. err := cl.Get(context.Background(), client.ObjectKey{
  29. Namespace: "provider-ns",
  30. Name: "example",
  31. }, &provider)
  32. Expect(err).NotTo(HaveOccurred())
  33. Expect(provider.Spec.Server.CABundle).To(Equal([]byte("inline-ca")))
  34. Expect(provider.Spec.Server.CAProvider).To(BeNil())
  35. Expect(provider.Spec.Auth).NotTo(BeNil())
  36. Expect(provider.Spec.Auth.ServiceAccount).To(Equal(&esmeta.ServiceAccountSelector{
  37. Name: "eso-auth",
  38. Namespace: nil,
  39. }))
  40. }
  41. func TestGetClusterCABundleWaitsForRootCAConfigMap(t *testing.T) {
  42. t.Helper()
  43. RegisterTestingT(t)
  44. scheme := runtime.NewScheme()
  45. Expect(corev1.AddToScheme(scheme)).To(Succeed())
  46. cl := fake.NewClientBuilder().WithScheme(scheme).Build()
  47. f := &framework.Framework{
  48. CRClient: cl,
  49. }
  50. go func() {
  51. time.Sleep(25 * time.Millisecond)
  52. Expect(cl.Create(context.Background(), &corev1.ConfigMap{
  53. ObjectMeta: metav1.ObjectMeta{
  54. Name: "kube-root-ca.crt",
  55. Namespace: "test",
  56. },
  57. Data: map[string]string{
  58. "ca.crt": "root-ca-data",
  59. },
  60. })).To(Succeed())
  61. }()
  62. Expect(GetClusterCABundle(f, "test")).To(Equal([]byte("root-ca-data")))
  63. }