Skip to content

Commit 65e423d

Browse files
author
Pascal Davoust
committed
fixes #193
1 parent e8311c1 commit 65e423d

30 files changed

+202
-39
lines changed

api/v1alpha1/utils/vaultobject.go

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"context"
2121
"strings"
2222

23+
"github.com/google/go-cmp/cmp"
2324
vault "github.com/hashicorp/vault/api"
2425
"sigs.k8s.io/controller-runtime/pkg/client"
2526
"sigs.k8s.io/controller-runtime/pkg/log"
@@ -56,6 +57,7 @@ func (ve *VaultEndpoint) DeleteKVv2IfExists(context context.Context) error {
5657
// should match pathToDelete := fmt.Sprintf("%s/metadata/%s", kv.mountPath, secretPath)
5758
pathToDelete := strings.Replace(ve.vaultObject.GetPath(), "/data/", "/metadata/", 1)
5859

60+
log.V(1).Info("deleting resource from Vault", "op", "VaultEndpoint.DeleteKVv2IfExists")
5961
_, err := vaultClient.Logical().Delete(pathToDelete)
6062
if err != nil {
6163
if respErr, ok := err.(*vault.ResponseError); ok {
@@ -71,6 +73,7 @@ func (ve *VaultEndpoint) DeleteKVv2IfExists(context context.Context) error {
7173

7274
func (ve *VaultEndpoint) DeleteIfExists(context context.Context) error {
7375
log := log.FromContext(context)
76+
log.V(1).Info("deleting resource from Vault", "op", "VaultEndpoint.DeleteIfExists")
7477
vaultClient := context.Value("vaultClient").(*vault.Client)
7578
_, err := vaultClient.Logical().Delete(ve.vaultObject.GetPath())
7679
if err != nil {
@@ -86,21 +89,30 @@ func (ve *VaultEndpoint) DeleteIfExists(context context.Context) error {
8689
}
8790

8891
func (ve *VaultEndpoint) Create(context context.Context) error {
92+
log := log.FromContext(context)
93+
log.V(1).Info("creating resource in Vault", "op", "VaultEndpoint.Create")
8994
return write(context, ve.vaultObject.GetPath(), ve.vaultObject.GetPayload())
9095
}
9196

9297
func (ve *VaultEndpoint) CreateOrUpdate(context context.Context) error {
9398
log := log.FromContext(context)
99+
log.V(1).Info("reading resource from Vault", "op", "VaultEndpoint.CreateOrUpdate")
94100
currentPayload, found, err := read(context, ve.vaultObject.GetPath())
95101
if err != nil {
96102
log.Error(err, "unable to read object at", "path", ve.vaultObject.GetPath())
97103
return err
98104
}
99105
if !found {
106+
log.V(1).Info("resource does not exist, creating it in Vault", "op", "VaultEndpoint.CreateOrUpdate")
100107
return write(context, ve.vaultObject.GetPath(), ve.vaultObject.GetPayload())
101108
} else {
102109
if !ve.vaultObject.IsEquivalentToDesiredState(currentPayload) {
103-
return write(context, ve.vaultObject.GetPath(), ve.vaultObject.GetPayload())
110+
updatedPayload := ve.vaultObject.GetPayload()
111+
log.V(1).Info("resource is not in sync, writing to Vault", "op", "VaultEndpoint.CreateOrUpdate",
112+
"diff", cmp.Diff(currentPayload, updatedPayload))
113+
return write(context, ve.vaultObject.GetPath(), updatedPayload)
114+
} else {
115+
log.V(1).Info("vault resource is already in sync", "op", "VaultEndpoint.CreateOrUpdate")
104116
}
105117
}
106118
return nil
@@ -123,22 +135,31 @@ func (ve *RabbitMQEngineConfigVaultEndpoint) CreateOrUpdateLease(context context
123135
if ve.rabbitMQEngineConfigVaultEndpoint.CheckTTLValuesProvided() {
124136
return nil
125137
}
138+
log.V(1).Info("reading resource from Vault", "op", "RabbitMQEngineConfigVaultEndpoint.CreateOrUpdateLease")
126139
currentPayload, found, err := read(context, ve.rabbitMQEngineConfigVaultEndpoint.GetLeasePath())
127140
if err != nil {
128141
log.Error(err, "unable to read object at", "path", ve.rabbitMQEngineConfigVaultEndpoint.GetLeasePath())
129142
return err
130143
}
131144
if !found {
145+
log.V(1).Info("resource does not exist, creating it in Vault", "op", "RabbitMQEngineConfigVaultEndpoint.CreateOrUpdateLease")
132146
return write(context, ve.rabbitMQEngineConfigVaultEndpoint.GetLeasePath(), ve.rabbitMQEngineConfigVaultEndpoint.GetLeasePayload())
133147
} else {
134148
if !ve.rabbitMQEngineConfigVaultEndpoint.IsEquivalentToDesiredState(currentPayload) {
135-
return write(context, ve.rabbitMQEngineConfigVaultEndpoint.GetLeasePath(), ve.rabbitMQEngineConfigVaultEndpoint.GetLeasePayload())
149+
updatedPayload := ve.rabbitMQEngineConfigVaultEndpoint.GetLeasePayload()
150+
log.V(1).Info("resource is not in sync, writing to Vault", "op", "RabbitMQEngineConfigVaultEndpoint.CreateOrUpdateLease",
151+
"diff", cmp.Diff(currentPayload, updatedPayload))
152+
return write(context, ve.rabbitMQEngineConfigVaultEndpoint.GetLeasePath(), updatedPayload)
153+
} else {
154+
log.V(1).Info("vault resource is already in sync", "op", "RabbitMQEngineConfigVaultEndpoint.CreateOrUpdateLease")
136155
}
137156
}
138157
return nil
139158
}
140159

141160
func (ve *RabbitMQEngineConfigVaultEndpoint) Create(context context.Context) error {
161+
log := log.FromContext(context)
162+
log.V(1).Info("creating resource in Vault", "op", "RabbitMQEngineConfigVaultEndpoint.Create")
142163
return write(context, ve.rabbitMQEngineConfigVaultEndpoint.GetPath(), ve.rabbitMQEngineConfigVaultEndpoint.GetPayload())
143164
}
144165

controllers/databasesecretengineconfig_controller.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"time"
2323

2424
redhatcopv1alpha1 "github.com/redhat-cop/vault-config-operator/api/v1alpha1"
25+
"github.com/redhat-cop/vault-config-operator/controllers/k8sevt"
2526
"github.com/redhat-cop/vault-config-operator/controllers/vaultresourcecontroller"
2627
corev1 "k8s.io/api/core/v1"
2728
apierrors "k8s.io/apimachinery/pkg/api/errors"
@@ -210,14 +211,16 @@ func (r *DatabaseSecretEngineConfigReconciler) SetupWithManager(mgr ctrl.Manager
210211
}
211212

212213
return ctrl.NewControllerManagedBy(mgr).
213-
For(&redhatcopv1alpha1.DatabaseSecretEngineConfig{}, builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{})).
214+
For(&redhatcopv1alpha1.DatabaseSecretEngineConfig{},
215+
builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{}, k8sevt.Log{})).
214216
Watches(&corev1.Secret{
215217
TypeMeta: metav1.TypeMeta{
216218
Kind: "Secret",
217219
},
218220
}, handler.EnqueueRequestsFromMapFunc(func(ctx context.Context, a client.Object) []reconcile.Request {
219221
res := []reconcile.Request{}
220222
s := a.(*corev1.Secret)
223+
r.Log.V(1).Info("fanning event on Secret out to applicable DatabaseSecretEngineConfigs", "namespace", s.Namespace, "name", s.Name)
221224
dbsecs, err := r.findApplicableBDSCForSecret(ctx, s)
222225
if err != nil {
223226
r.Log.Error(err, "unable to find applicable databaseSecretEngines for namespace", "namespace", s.Name)
@@ -232,14 +235,15 @@ func (r *DatabaseSecretEngineConfigReconciler) SetupWithManager(mgr ctrl.Manager
232235
})
233236
}
234237
return res
235-
}), builder.WithPredicates(isBasicAuthSecret)).
238+
}), builder.WithPredicates(isBasicAuthSecret, k8sevt.Log{})).
236239
Watches(&redhatcopv1alpha1.RandomSecret{
237240
TypeMeta: metav1.TypeMeta{
238241
Kind: "RandomSecret",
239242
},
240243
}, handler.EnqueueRequestsFromMapFunc(func(ctx context.Context, a client.Object) []reconcile.Request {
241244
res := []reconcile.Request{}
242245
rs := a.(*redhatcopv1alpha1.RandomSecret)
246+
r.Log.V(1).Info("fanning event on RandomSecret out to applicable RandomSecrets", "namespace", rs.Namespace, "name", rs.Name)
243247
dbsecs, err := r.findApplicableDBSCForRandomSecret(ctx, rs)
244248
if err != nil {
245249
r.Log.Error(err, "unable to find applicable databaseSecretEngines for namespace", "namespace", rs.Name)
@@ -254,7 +258,7 @@ func (r *DatabaseSecretEngineConfigReconciler) SetupWithManager(mgr ctrl.Manager
254258
})
255259
}
256260
return res
257-
}), builder.WithPredicates(isUpdatedRandomSecret)).
261+
}), builder.WithPredicates(isUpdatedRandomSecret, k8sevt.Log{})).
258262
Complete(r)
259263
}
260264

controllers/databasesecretenginerole_controller.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"sigs.k8s.io/controller-runtime/pkg/reconcile"
2727

2828
redhatcopv1alpha1 "github.com/redhat-cop/vault-config-operator/api/v1alpha1"
29+
"github.com/redhat-cop/vault-config-operator/controllers/k8sevt"
2930
"github.com/redhat-cop/vault-config-operator/controllers/vaultresourcecontroller"
3031
)
3132

@@ -80,6 +81,7 @@ func (r *DatabaseSecretEngineRoleReconciler) Reconcile(ctx context.Context, req
8081
// SetupWithManager sets up the controller with the Manager.
8182
func (r *DatabaseSecretEngineRoleReconciler) SetupWithManager(mgr ctrl.Manager) error {
8283
return ctrl.NewControllerManagedBy(mgr).
83-
For(&redhatcopv1alpha1.DatabaseSecretEngineRole{}, builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{})).
84+
For(&redhatcopv1alpha1.DatabaseSecretEngineRole{},
85+
builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{}, k8sevt.Log{})).
8486
Complete(r)
8587
}

controllers/databasesecretenginestaticrole_controller.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"sigs.k8s.io/controller-runtime/pkg/reconcile"
2727

2828
redhatcopv1alpha1 "github.com/redhat-cop/vault-config-operator/api/v1alpha1"
29+
"github.com/redhat-cop/vault-config-operator/controllers/k8sevt"
2930
"github.com/redhat-cop/vault-config-operator/controllers/vaultresourcecontroller"
3031
)
3132

@@ -71,6 +72,7 @@ func (r *DatabaseSecretEngineStaticRoleReconciler) Reconcile(ctx context.Context
7172
// SetupWithManager sets up the controller with the Manager.
7273
func (r *DatabaseSecretEngineStaticRoleReconciler) SetupWithManager(mgr ctrl.Manager) error {
7374
return ctrl.NewControllerManagedBy(mgr).
74-
For(&redhatcopv1alpha1.DatabaseSecretEngineStaticRole{}, builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{})).
75+
For(&redhatcopv1alpha1.DatabaseSecretEngineStaticRole{},
76+
builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{}, k8sevt.Log{})).
7577
Complete(r)
7678
}

controllers/githubsecretengineconfig_controller.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
"sigs.k8s.io/controller-runtime/pkg/reconcile"
3535

3636
redhatcopv1alpha1 "github.com/redhat-cop/vault-config-operator/api/v1alpha1"
37+
"github.com/redhat-cop/vault-config-operator/controllers/k8sevt"
3738
"github.com/redhat-cop/vault-config-operator/controllers/vaultresourcecontroller"
3839
)
3940

@@ -118,14 +119,16 @@ func (r *GitHubSecretEngineConfigReconciler) SetupWithManager(mgr ctrl.Manager)
118119
}
119120

120121
return ctrl.NewControllerManagedBy(mgr).
121-
For(&redhatcopv1alpha1.GitHubSecretEngineConfig{}, builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{})).
122+
For(&redhatcopv1alpha1.GitHubSecretEngineConfig{},
123+
builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{}, k8sevt.Log{})).
122124
Watches(&corev1.Secret{
123125
TypeMeta: metav1.TypeMeta{
124126
Kind: "Secret",
125127
},
126128
}, handler.EnqueueRequestsFromMapFunc(func(ctx context.Context, a client.Object) []reconcile.Request {
127129
res := []reconcile.Request{}
128130
s := a.(*corev1.Secret)
131+
r.Log.V(1).Info("fanning event on Secret out to applicable GitHubSecretEngineConfigs", "namespace", s.Namespace, "name", s.Name)
129132
dbsecs, err := r.findApplicableGHSCForSecret(ctx, s)
130133
if err != nil {
131134
r.Log.Error(err, "unable to find applicable github SecretEngines for namespace", "namespace", s.Name)
@@ -140,7 +143,7 @@ func (r *GitHubSecretEngineConfigReconciler) SetupWithManager(mgr ctrl.Manager)
140143
})
141144
}
142145
return res
143-
}), builder.WithPredicates(isSSHSecret)).
146+
}), builder.WithPredicates(isSSHSecret, k8sevt.Log{})).
144147
Complete(r)
145148
}
146149

controllers/githubsecretenginerole_controller.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"sigs.k8s.io/controller-runtime/pkg/reconcile"
2727

2828
redhatcopv1alpha1 "github.com/redhat-cop/vault-config-operator/api/v1alpha1"
29+
"github.com/redhat-cop/vault-config-operator/controllers/k8sevt"
2930
"github.com/redhat-cop/vault-config-operator/controllers/vaultresourcecontroller"
3031
)
3132

@@ -80,6 +81,7 @@ func (r *GitHubSecretEngineRoleReconciler) Reconcile(ctx context.Context, req ct
8081
// SetupWithManager sets up the controller with the Manager.
8182
func (r *GitHubSecretEngineRoleReconciler) SetupWithManager(mgr ctrl.Manager) error {
8283
return ctrl.NewControllerManagedBy(mgr).
83-
For(&redhatcopv1alpha1.GitHubSecretEngineRole{}, builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{})).
84+
For(&redhatcopv1alpha1.GitHubSecretEngineRole{},
85+
builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{}, k8sevt.Log{})).
8486
Complete(r)
8587
}

controllers/group_controller.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"sigs.k8s.io/controller-runtime/pkg/reconcile"
2727

2828
redhatcopv1alpha1 "github.com/redhat-cop/vault-config-operator/api/v1alpha1"
29+
"github.com/redhat-cop/vault-config-operator/controllers/k8sevt"
2930
"github.com/redhat-cop/vault-config-operator/controllers/vaultresourcecontroller"
3031
)
3132

@@ -77,6 +78,7 @@ func (r *GroupReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl
7778
// SetupWithManager sets up the controller with the Manager.
7879
func (r *GroupReconciler) SetupWithManager(mgr ctrl.Manager) error {
7980
return ctrl.NewControllerManagedBy(mgr).
80-
For(&redhatcopv1alpha1.Group{}, builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{})).
81+
For(&redhatcopv1alpha1.Group{},
82+
builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{}, k8sevt.Log{})).
8183
Complete(r)
8284
}

controllers/groupalias_controller.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"sigs.k8s.io/controller-runtime/pkg/reconcile"
2727

2828
redhatcopv1alpha1 "github.com/redhat-cop/vault-config-operator/api/v1alpha1"
29+
"github.com/redhat-cop/vault-config-operator/controllers/k8sevt"
2930
"github.com/redhat-cop/vault-config-operator/controllers/vaultresourcecontroller"
3031
)
3132

@@ -77,6 +78,7 @@ func (r *GroupAliasReconciler) Reconcile(ctx context.Context, req ctrl.Request)
7778
// SetupWithManager sets up the controller with the Manager.
7879
func (r *GroupAliasReconciler) SetupWithManager(mgr ctrl.Manager) error {
7980
return ctrl.NewControllerManagedBy(mgr).
80-
For(&redhatcopv1alpha1.GroupAlias{}, builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{})).
81+
For(&redhatcopv1alpha1.GroupAlias{},
82+
builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{}, k8sevt.Log{})).
8183
Complete(r)
8284
}

controllers/jwtoidcauthengineconfig_controller.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
"sigs.k8s.io/controller-runtime/pkg/reconcile"
3535

3636
redhatcopv1alpha1 "github.com/redhat-cop/vault-config-operator/api/v1alpha1"
37+
"github.com/redhat-cop/vault-config-operator/controllers/k8sevt"
3738
"github.com/redhat-cop/vault-config-operator/controllers/vaultresourcecontroller"
3839
)
3940

@@ -142,14 +143,16 @@ func (r *JWTOIDCAuthEngineConfigReconciler) SetupWithManager(mgr ctrl.Manager) e
142143
}
143144

144145
return ctrl.NewControllerManagedBy(mgr).
145-
For(&redhatcopv1alpha1.JWTOIDCAuthEngineConfig{}, builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{})).
146+
For(&redhatcopv1alpha1.JWTOIDCAuthEngineConfig{},
147+
builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{}, k8sevt.Log{})).
146148
Watches(&corev1.Secret{
147149
TypeMeta: metav1.TypeMeta{
148150
Kind: "Secret",
149151
},
150152
}, handler.EnqueueRequestsFromMapFunc(func(ctx context.Context, a client.Object) []reconcile.Request {
151153
res := []reconcile.Request{}
152154
s := a.(*corev1.Secret)
155+
r.Log.V(1).Info("fanning event on Secret out to applicable JWTOIDCAuthEngineConfigs", "namespace", s.Namespace, "name", s.Name)
153156
dbsecs, err := r.findApplicableJOAEForSecret(ctx, s)
154157
if err != nil {
155158
r.Log.Error(err, "unable to find applicable JWTOIDCAuthEngine for namespace", "namespace", s.Name)
@@ -164,14 +167,15 @@ func (r *JWTOIDCAuthEngineConfigReconciler) SetupWithManager(mgr ctrl.Manager) e
164167
})
165168
}
166169
return res
167-
}), builder.WithPredicates(isBasicAuthSecret)).
170+
}), builder.WithPredicates(isBasicAuthSecret, k8sevt.Log{})).
168171
Watches(&redhatcopv1alpha1.RandomSecret{
169172
TypeMeta: metav1.TypeMeta{
170173
Kind: "RandomSecret",
171174
},
172175
}, handler.EnqueueRequestsFromMapFunc(func(ctx context.Context, a client.Object) []reconcile.Request {
173176
res := []reconcile.Request{}
174177
rs := a.(*redhatcopv1alpha1.RandomSecret)
178+
r.Log.V(1).Info("fanning event on RandomSecret out to applicable JWTOIDCAuthEngineConfigs", "namespace", rs.Namespace, "name", rs.Name)
175179
dbsecs, err := r.findApplicableJOAEForRandomSecret(ctx, rs)
176180
if err != nil {
177181
r.Log.Error(err, "unable to find applicable JWTOIDCAuthEngine for namespace", "namespace", rs.Name)
@@ -186,7 +190,7 @@ func (r *JWTOIDCAuthEngineConfigReconciler) SetupWithManager(mgr ctrl.Manager) e
186190
})
187191
}
188192
return res
189-
}), builder.WithPredicates(isUpdatedRandomSecret)).
193+
}), builder.WithPredicates(isUpdatedRandomSecret, k8sevt.Log{})).
190194
Complete(r)
191195

192196
}

controllers/jwtoidcauthenginerole_controller.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"sigs.k8s.io/controller-runtime/pkg/reconcile"
2727

2828
redhatcopv1alpha1 "github.com/redhat-cop/vault-config-operator/api/v1alpha1"
29+
"github.com/redhat-cop/vault-config-operator/controllers/k8sevt"
2930
"github.com/redhat-cop/vault-config-operator/controllers/vaultresourcecontroller"
3031
)
3132

@@ -75,6 +76,7 @@ func (r *JWTOIDCAuthEngineRoleReconciler) Reconcile(ctx context.Context, req ctr
7576
// SetupWithManager sets up the controller with the Manager.
7677
func (r *JWTOIDCAuthEngineRoleReconciler) SetupWithManager(mgr ctrl.Manager) error {
7778
return ctrl.NewControllerManagedBy(mgr).
78-
For(&redhatcopv1alpha1.JWTOIDCAuthEngineRole{}, builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{})).
79+
For(&redhatcopv1alpha1.JWTOIDCAuthEngineRole{},
80+
builder.WithPredicates(vaultresourcecontroller.ResourceGenerationChangedPredicate{}, k8sevt.Log{})).
7981
Complete(r)
8082
}

0 commit comments

Comments
 (0)