Skip to content

Commit

Permalink
Merge pull request #301 from bitnami-labs/fixsecret
Browse files Browse the repository at this point in the history
Fix GenerateName in test
  • Loading branch information
Marko Mikulicic authored Oct 29, 2019
2 parents b8bc93c + 7a59d20 commit 4c05572
Show file tree
Hide file tree
Showing 3 changed files with 151 additions and 0 deletions.
23 changes: 23 additions & 0 deletions cmd/controller/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,14 @@ import (
"crypto/rsa"
"crypto/x509"
"encoding/pem"
"fmt"
"testing"
"time"

v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
krand "k8s.io/apimachinery/pkg/util/rand"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/kubernetes/fake"
ktesting "k8s.io/client-go/testing"
Expand All @@ -29,9 +32,20 @@ func hasAction(fake *fake.Clientset, verb, resource string) bool {
return findAction(fake, verb, resource) != nil
}

// generateNameReactor implements the logic required for the GenerateName field to work when using
// the fake client. Add it with client.PrependReactor to your fake client.
func generateNameReactor(action ktesting.Action) (handled bool, ret runtime.Object, err error) {
s := action.(ktesting.CreateAction).GetObject().(*v1.Secret)
if s.Name == "" && s.GenerateName != "" {
s.Name = fmt.Sprintf("%s-%s", s.GenerateName, krand.String(16))
}
return false, nil, nil
}

func TestInitKeyRegistry(t *testing.T) {
rand := testRand()
client := fake.NewSimpleClientset()
client.PrependReactor("create", "secrets", generateNameReactor)

registry, err := initKeyRegistry(client, rand, "namespace", "prefix", "label", 1024)
if err != nil {
Expand Down Expand Up @@ -59,6 +73,8 @@ func TestInitKeyRegistry(t *testing.T) {
func TestInitKeyRotation(t *testing.T) {
rand := testRand()
client := fake.NewSimpleClientset()
client.PrependReactor("create", "secrets", generateNameReactor)

registry, err := initKeyRegistry(client, rand, "namespace", "prefix", "label", 1024)
if err != nil {
t.Fatalf("initKeyRegistry() returned err: %v", err)
Expand Down Expand Up @@ -95,6 +111,8 @@ func TestInitKeyRotation(t *testing.T) {
func TestInitKeyRotationTick(t *testing.T) {
rand := testRand()
client := fake.NewSimpleClientset()
client.PrependReactor("create", "secrets", generateNameReactor)

registry, err := initKeyRegistry(client, rand, "namespace", "prefix", "label", 1024)
if err != nil {
t.Fatalf("initKeyRegistry() returned err: %v", err)
Expand Down Expand Up @@ -138,6 +156,8 @@ func TestReuseKey(t *testing.T) {
}

client := fake.NewSimpleClientset()
client.PrependReactor("create", "secrets", generateNameReactor)

_, err = writeKey(client, key, []*x509.Certificate{cert}, "namespace", SealedSecretsKeyLabel, "prefix")
if err != nil {
t.Errorf("writeKey() failed with: %v", err)
Expand Down Expand Up @@ -180,6 +200,8 @@ func TestRenewStaleKey(t *testing.T) {
oldAge = period - staleness
)
client := fake.NewSimpleClientset()
client.PrependReactor("create", "secrets", generateNameReactor)

_, err = writeKey(client, key, []*x509.Certificate{cert}, "namespace", SealedSecretsKeyLabel, "prefix",
writeKeyWithCreationTime(metav1.NewTime(time.Now().Add(-oldAge))))
if err != nil {
Expand Down Expand Up @@ -250,6 +272,7 @@ func TestLegacySecret(t *testing.T) {
}

client := fake.NewSimpleClientset()
client.PrependReactor("create", "secrets", generateNameReactor)

_, err = writeLegacyKey(client, key, []*x509.Certificate{cert}, "namespace", "prefix")
if err != nil {
Expand Down
127 changes: 127 additions & 0 deletions vendor/k8s.io/apimachinery/pkg/util/rand/rand.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions vendor/modules.txt
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,7 @@ k8s.io/apimachinery/pkg/util/json
k8s.io/apimachinery/pkg/util/mergepatch
k8s.io/apimachinery/pkg/util/naming
k8s.io/apimachinery/pkg/util/net
k8s.io/apimachinery/pkg/util/rand
k8s.io/apimachinery/pkg/util/runtime
k8s.io/apimachinery/pkg/util/sets
k8s.io/apimachinery/pkg/util/strategicpatch
Expand Down

0 comments on commit 4c05572

Please sign in to comment.