Skip to content

Commit e5b5e4d

Browse files
Merge pull request #20 from bharath-b-rh/eso-50-2
ESO-50: Refactor code to dedicated packages to avoid duplication
2 parents b31436d + 7820229 commit e5b5e4d

31 files changed

+659
-561
lines changed

bundle/manifests/external-secrets-operator.clusterserviceversion.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ metadata:
3333
categories: Security
3434
console.openshift.io/disable-operand-delete: "true"
3535
containerImage: ""
36-
createdAt: "2025-06-02T08:50:05Z"
36+
createdAt: "2025-06-04T18:31:43Z"
3737
features.operators.openshift.io/cnf: "false"
3838
features.operators.openshift.io/cni: "false"
3939
features.operators.openshift.io/csi: "false"
@@ -244,6 +244,8 @@ spec:
244244
- cert-manager.io
245245
resources:
246246
- certificates
247+
- clusterissuers
248+
- issuers
247249
verbs:
248250
- create
249251
- delete

bundle/manifests/operator.openshift.io_externalsecrets.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1018,6 +1018,20 @@ spec:
10181018
- "true"
10191019
- "false"
10201020
type: string
1021+
secretRef:
1022+
description: |-
1023+
SecretRef is the kubernetes secret containing the TLS key pair to be used for the bitwarden server.
1024+
The issuer in CertManagerConfig will be utilized to generate the required certificate if the secret
1025+
reference is not provided and CertManagerConfig is configured. The key names in secret for certificate
1026+
must be `tls.crt`, for private key must be `tls.key` and for CA certificate key name must be `ca.crt`.
1027+
properties:
1028+
name:
1029+
description: Name of the secret resource being referred
1030+
to.
1031+
type: string
1032+
required:
1033+
- name
1034+
type: object
10211035
type: object
10221036
logLevel:
10231037
default: 1

cmd/external-secrets-operator/main.go

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import (
3737
certmanagerv1 "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
3838

3939
operatorv1alpha1 "github.com/openshift/external-secrets-operator/api/v1alpha1"
40-
externalsecretscontroller "github.com/openshift/external-secrets-operator/pkg/controller"
40+
"github.com/openshift/external-secrets-operator/pkg/operator"
4141
// +kubebuilder:scaffold:imports
4242
)
4343

@@ -129,22 +129,16 @@ func main() {
129129
WebhookServer: webhookServer,
130130
HealthProbeBindAddress: probeAddr,
131131
LeaderElection: enableLeaderElection,
132-
LeaderElectionID: "de6a4747.operator.openshift.io",
132+
LeaderElectionID: "de6a4747.externalsecretsoperator.operator.openshift.io",
133133
Logger: ctrl.Log.WithName("operator-manager"),
134134
})
135135
if err != nil {
136136
setupLog.Error(err, "failed to create controller manager")
137137
os.Exit(1)
138138
}
139139

140-
externalsecrets, err := externalsecretscontroller.New(mgr)
141-
if err != nil {
142-
setupLog.Error(err, "failed to create controller", "controller", externalsecretscontroller.ControllerName)
143-
os.Exit(1)
144-
}
145-
if err = externalsecrets.SetupWithManager(mgr); err != nil {
146-
setupLog.Error(err, "failed to set up controller with manager",
147-
"controller", externalsecretscontroller.ControllerName)
140+
if err := operator.StartControllers(mgr); err != nil {
141+
setupLog.Error(err, "failed to start controllers")
148142
os.Exit(1)
149143
}
150144

config/rbac/role.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ rules:
7676
- cert-manager.io
7777
resources:
7878
- certificates
79+
- clusterissuers
80+
- issuers
7981
verbs:
8082
- create
8183
- delete

pkg/controller/client.go renamed to pkg/controller/client/client.go

Lines changed: 13 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package controller
1+
package client
22

33
import (
44
"context"
@@ -10,16 +10,15 @@ import (
1010
"k8s.io/client-go/util/retry"
1111

1212
"sigs.k8s.io/controller-runtime/pkg/client"
13-
"sigs.k8s.io/controller-runtime/pkg/manager"
1413
)
1514

16-
type ctrlClientImpl struct {
15+
type CtrlClientImpl struct {
1716
client.Client
1817
}
1918

2019
//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate
21-
//counterfeiter:generate -o fakes . ctrlClient
22-
type ctrlClient interface {
20+
//counterfeiter:generate -o fakes . CtrlClient
21+
type CtrlClient interface {
2322
Get(context.Context, client.ObjectKey, client.Object) error
2423
List(context.Context, client.ObjectList, ...client.ListOption) error
2524
StatusUpdate(context.Context, client.Object, ...client.SubResourceUpdateOption) error
@@ -31,47 +30,37 @@ type ctrlClient interface {
3130
Exists(context.Context, client.ObjectKey, client.Object) (bool, error)
3231
}
3332

34-
func NewClient(m manager.Manager, r *ExternalSecretsReconciler) (ctrlClient, error) {
35-
c, err := BuildCustomClient(m, r)
36-
if err != nil {
37-
return nil, fmt.Errorf("failed to build custom client: %w", err)
38-
}
39-
return &ctrlClientImpl{
40-
Client: c,
41-
}, nil
42-
}
43-
44-
func (c *ctrlClientImpl) Get(
33+
func (c *CtrlClientImpl) Get(
4534
ctx context.Context, key client.ObjectKey, obj client.Object,
4635
) error {
4736
return c.Client.Get(ctx, key, obj)
4837
}
4938

50-
func (c *ctrlClientImpl) List(
39+
func (c *CtrlClientImpl) List(
5140
ctx context.Context, list client.ObjectList, opts ...client.ListOption,
5241
) error {
5342
return c.Client.List(ctx, list, opts...)
5443
}
5544

56-
func (c *ctrlClientImpl) Create(
45+
func (c *CtrlClientImpl) Create(
5746
ctx context.Context, obj client.Object, opts ...client.CreateOption,
5847
) error {
5948
return c.Client.Create(ctx, obj, opts...)
6049
}
6150

62-
func (c *ctrlClientImpl) Delete(
51+
func (c *CtrlClientImpl) Delete(
6352
ctx context.Context, obj client.Object, opts ...client.DeleteOption,
6453
) error {
6554
return c.Client.Delete(ctx, obj, opts...)
6655
}
6756

68-
func (c *ctrlClientImpl) Update(
57+
func (c *CtrlClientImpl) Update(
6958
ctx context.Context, obj client.Object, opts ...client.UpdateOption,
7059
) error {
7160
return c.Client.Update(ctx, obj, opts...)
7261
}
7362

74-
func (c *ctrlClientImpl) UpdateWithRetry(
63+
func (c *CtrlClientImpl) UpdateWithRetry(
7564
ctx context.Context, obj client.Object, opts ...client.UpdateOption,
7665
) error {
7766
key := types.NamespacedName{Name: obj.GetName(), Namespace: obj.GetNamespace()}
@@ -92,19 +81,19 @@ func (c *ctrlClientImpl) UpdateWithRetry(
9281
return nil
9382
}
9483

95-
func (c *ctrlClientImpl) StatusUpdate(
84+
func (c *CtrlClientImpl) StatusUpdate(
9685
ctx context.Context, obj client.Object, opts ...client.SubResourceUpdateOption,
9786
) error {
9887
return c.Client.Status().Update(ctx, obj, opts...)
9988
}
10089

101-
func (c *ctrlClientImpl) Patch(
90+
func (c *CtrlClientImpl) Patch(
10291
ctx context.Context, obj client.Object, patch client.Patch, opts ...client.PatchOption,
10392
) error {
10493
return c.Client.Patch(ctx, obj, patch, opts...)
10594
}
10695

107-
func (c *ctrlClientImpl) Exists(ctx context.Context, key client.ObjectKey, obj client.Object) (bool, error) {
96+
func (c *CtrlClientImpl) Exists(ctx context.Context, key client.ObjectKey, obj client.Object) (bool, error) {
10897
if err := c.Client.Get(ctx, key, obj); err != nil {
10998
if errors.IsNotFound(err) {
11099
return false, nil

0 commit comments

Comments
 (0)