mirror of
https://github.com/vmware-tanzu/pinniped.git
synced 2026-09-05 15:47:02 +00:00
SecretHelper depends less on OIDCProvider
This should allow the helper to be more generic so that it can be used with the SupervisorSecretsController
This commit is contained in:
@@ -43,21 +43,21 @@ func NewSymmetricSecretHelper(
|
||||
namePrefix string,
|
||||
labels map[string]string,
|
||||
rand io.Reader,
|
||||
notifyFunc func(parent *configv1alpha1.OIDCProvider, child *corev1.Secret),
|
||||
updateCacheFunc func(cacheKey string, cacheValue []byte),
|
||||
) SecretHelper {
|
||||
return &symmetricSecretHelper{
|
||||
namePrefix: namePrefix,
|
||||
labels: labels,
|
||||
rand: rand,
|
||||
notifyFunc: notifyFunc,
|
||||
namePrefix: namePrefix,
|
||||
labels: labels,
|
||||
rand: rand,
|
||||
updateCacheFunc: updateCacheFunc,
|
||||
}
|
||||
}
|
||||
|
||||
type symmetricSecretHelper struct {
|
||||
namePrefix string
|
||||
labels map[string]string
|
||||
rand io.Reader
|
||||
notifyFunc func(parent *configv1alpha1.OIDCProvider, child *corev1.Secret)
|
||||
namePrefix string
|
||||
labels map[string]string
|
||||
rand io.Reader
|
||||
updateCacheFunc func(cacheKey string, cacheValue []byte)
|
||||
}
|
||||
|
||||
func (s *symmetricSecretHelper) NamePrefix() string { return s.namePrefix }
|
||||
@@ -90,16 +90,16 @@ func (s *symmetricSecretHelper) Generate(parent *configv1alpha1.OIDCProvider) (*
|
||||
}
|
||||
|
||||
// IsValid implements SecretHelper.IsValid().
|
||||
func (s *symmetricSecretHelper) IsValid(parent *configv1alpha1.OIDCProvider, child *corev1.Secret) bool {
|
||||
if !metav1.IsControlledBy(child, parent) {
|
||||
func (s *symmetricSecretHelper) IsValid(parent *configv1alpha1.OIDCProvider, secret *corev1.Secret) bool {
|
||||
if !metav1.IsControlledBy(secret, parent) {
|
||||
return false
|
||||
}
|
||||
|
||||
if child.Type != SymmetricSecretType {
|
||||
if secret.Type != SymmetricSecretType {
|
||||
return false
|
||||
}
|
||||
|
||||
key, ok := child.Data[SymmetricSecretDataKey]
|
||||
key, ok := secret.Data[SymmetricSecretDataKey]
|
||||
if !ok {
|
||||
return false
|
||||
}
|
||||
@@ -111,6 +111,11 @@ func (s *symmetricSecretHelper) IsValid(parent *configv1alpha1.OIDCProvider, chi
|
||||
}
|
||||
|
||||
// Notify implements SecretHelper.Notify().
|
||||
func (s *symmetricSecretHelper) Notify(parent *configv1alpha1.OIDCProvider, child *corev1.Secret) {
|
||||
s.notifyFunc(parent, child)
|
||||
func (s *symmetricSecretHelper) Notify(op *configv1alpha1.OIDCProvider, secret *corev1.Secret) {
|
||||
var cacheKey string
|
||||
if op != nil {
|
||||
cacheKey = op.Spec.Issuer
|
||||
}
|
||||
|
||||
s.updateCacheFunc(cacheKey, secret.Data[SymmetricSecretDataKey])
|
||||
}
|
||||
|
||||
@@ -23,12 +23,14 @@ func TestSymmetricSecretHHelper(t *testing.T) {
|
||||
"some-label-key-2": "some-label-value-2",
|
||||
}
|
||||
randSource := strings.NewReader(keyWith32Bytes)
|
||||
var notifyParent *configv1alpha1.OIDCProvider
|
||||
var notifyChild *corev1.Secret
|
||||
h := NewSymmetricSecretHelper("some-name-prefix-", labels, randSource, func(parent *configv1alpha1.OIDCProvider, child *corev1.Secret) {
|
||||
require.True(t, notifyParent == nil && notifyChild == nil, "expected notify func not to have been called yet")
|
||||
notifyParent = parent
|
||||
notifyChild = child
|
||||
// var notifyParent *configv1alpha1.OIDCProvider
|
||||
// var notifyChild *corev1.Secret
|
||||
var oidcProviderIssuerValue string
|
||||
var symmetricKeyValue []byte
|
||||
h := NewSymmetricSecretHelper("some-name-prefix-", labels, randSource, func(oidcProviderIssuer string, symmetricKey []byte) {
|
||||
require.True(t, oidcProviderIssuer == "" && symmetricKeyValue == nil, "expected notify func not to have been called yet")
|
||||
oidcProviderIssuerValue = oidcProviderIssuer
|
||||
symmetricKeyValue = symmetricKey
|
||||
})
|
||||
|
||||
parent := &configv1alpha1.OIDCProvider{
|
||||
@@ -61,8 +63,8 @@ func TestSymmetricSecretHHelper(t *testing.T) {
|
||||
require.True(t, h.IsValid(parent, child))
|
||||
|
||||
h.Notify(parent, child)
|
||||
require.Equal(t, parent, notifyParent)
|
||||
require.Equal(t, child, notifyChild)
|
||||
require.Equal(t, parent.Spec.Issuer, oidcProviderIssuerValue)
|
||||
require.Equal(t, child.Data[SymmetricSecretDataKey], symmetricKeyValue)
|
||||
}
|
||||
|
||||
func TestSymmetricSecretHHelperIsValid(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user