Skip to content

Commit e8a79cc

Browse files
Merge pull request #101 from SgtCoDFish/jacksgt-use-certificates
Use Certificates over CertificateRequests (#55 followup)
2 parents c426d47 + b55e587 commit e8a79cc

File tree

9 files changed

+1256
-1003
lines changed

9 files changed

+1256
-1003
lines changed

deploy/charts/openshift-routes/templates/rbac.yaml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ rules:
3232
- apiGroups:
3333
- cert-manager.io
3434
resources:
35-
- certificaterequests
35+
- certificates
3636
verbs:
3737
- create
3838
- get
@@ -41,11 +41,19 @@ rules:
4141
- apiGroups:
4242
- cert-manager.io
4343
resources:
44-
- certificaterequests/status
44+
- certificates/status
4545
verbs:
4646
- get
4747
- list
4848
- watch
49+
- apiGroups:
50+
- ""
51+
resources:
52+
- secrets
53+
verbs:
54+
- get
55+
- list
56+
- watch
4957
- apiGroups:
5058
- ""
5159
resources:

internal/cmd/app/app.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,19 +69,21 @@ func Command() *cobra.Command {
6969
return fmt.Errorf("connected to the Kubernetes API, but the Openshift Route v1 CRD does not appear to be installed")
7070
}
7171

72-
// Check if v1 cert-manager CertificateRequests exist in the API server
73-
apiServerHasCertificateRequests := false
72+
// Check if v1 cert-manager Certificates exist in the API server
73+
apiServerHasCertificates := false
7474
cmResources, err := cl.Discovery().ServerResourcesForGroupVersion("cert-manager.io/v1")
7575
if err != nil {
7676
return fmt.Errorf("couldn't check if cert-manager.io/v1 exists in the kubernetes API: %w", err)
7777
}
78+
7879
for _, r := range cmResources.APIResources {
79-
if r.Kind == "CertificateRequest" {
80-
apiServerHasCertificateRequests = true
80+
if r.Kind == "Certificate" {
81+
apiServerHasCertificates = true
8182
break
8283
}
8384
}
84-
if !apiServerHasCertificateRequests {
85+
86+
if !apiServerHasCertificates {
8587
return fmt.Errorf("connected to the Kubernetes API, but the cert-manager v1 CRDs do not appear to be installed")
8688
}
8789

internal/controller/controller.go

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ import (
2626
routev1client "github.com/openshift/client-go/route/clientset/versioned"
2727
"k8s.io/apimachinery/pkg/api/errors"
2828
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
29+
"k8s.io/client-go/kubernetes"
30+
corev1client "k8s.io/client-go/kubernetes/typed/core/v1"
2931
"k8s.io/client-go/rest"
3032
"k8s.io/client-go/tools/record"
3133
"sigs.k8s.io/controller-runtime/pkg/builder"
@@ -35,9 +37,10 @@ import (
3537
"github.com/cert-manager/openshift-routes/internal/cmd/app/options"
3638
)
3739

38-
type Route struct {
40+
type RouteController struct {
3941
routeClient routev1client.Interface
4042
certClient cmclient.Interface
43+
coreClient corev1client.CoreV1Interface
4144
eventRecorder record.EventRecorder
4245

4346
log logr.Logger
@@ -67,7 +70,7 @@ func shouldSync(log logr.Logger, route *routev1.Route) bool {
6770
return false
6871
}
6972

70-
func (r *Route) Reconcile(ctx context.Context, req reconcile.Request) (reconcile.Result, error) {
73+
func (r *RouteController) Reconcile(ctx context.Context, req reconcile.Request) (reconcile.Result, error) {
7174
log := r.log.WithValues("object", req.NamespacedName)
7275
log.V(5).Info("started reconciling")
7376
route, err := r.routeClient.RouteV1().Routes(req.Namespace).Get(ctx, req.Name, metav1.GetOptions{})
@@ -86,7 +89,7 @@ func (r *Route) Reconcile(ctx context.Context, req reconcile.Request) (reconcile
8689
return r.sync(ctx, req, route.DeepCopy())
8790
}
8891

89-
func New(base logr.Logger, config *rest.Config, recorder record.EventRecorder) (*Route, error) {
92+
func New(base logr.Logger, config *rest.Config, recorder record.EventRecorder) (*RouteController, error) {
9093
routeClient, err := routev1client.NewForConfig(config)
9194
if err != nil {
9295
return nil, err
@@ -95,10 +98,15 @@ func New(base logr.Logger, config *rest.Config, recorder record.EventRecorder) (
9598
if err != nil {
9699
return nil, err
97100
}
101+
clientset, err := kubernetes.NewForConfig(config)
102+
if err != nil {
103+
return nil, err
104+
}
98105

99-
return &Route{
106+
return &RouteController{
100107
routeClient: routeClient,
101108
certClient: certClient,
109+
coreClient: clientset.CoreV1(),
102110
log: base.WithName("route"),
103111
eventRecorder: recorder,
104112
}, nil
@@ -109,9 +117,10 @@ func AddToManager(mgr manager.Manager, opts *options.Options) error {
109117
if err != nil {
110118
return err
111119
}
120+
112121
return builder.
113122
ControllerManagedBy(mgr).
114123
For(&routev1.Route{}).
115-
Owns(&cmapi.CertificateRequest{}).
124+
Owns(&cmapi.Certificate{}).
116125
Complete(controller)
117126
}

0 commit comments

Comments
 (0)