Skip to content

Commit ee84fd9

Browse files
committed
Create dummy tunnelBinding
test without ownerRef remove commented code deployment needs to apply
1 parent ec78a10 commit ee84fd9

File tree

5 files changed

+50
-7
lines changed

5 files changed

+50
-7
lines changed

config/rbac/role.yaml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,7 @@ rules:
6666
- networking.cfargotunnel.com
6767
resources:
6868
- accesstunnels/status
69-
- clustertunnels/status
7069
- tunnelbindings/status
71-
- tunnels/status
7270
verbs:
7371
- get
7472
- patch
@@ -81,3 +79,14 @@ rules:
8179
- tunnels/finalizers
8280
verbs:
8381
- update
82+
- apiGroups:
83+
- networking.cfargotunnel.com
84+
resources:
85+
- clustertunnels/status
86+
- tunnels/status
87+
verbs:
88+
- get
89+
- list
90+
- patch
91+
- update
92+
- watch

internal/controller/clustertunnel_controller.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ func (r *ClusterTunnelReconciler) initStruct(ctx context.Context, tunnel Tunnel)
121121
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=clustertunnels,verbs=get;list;watch;create;update;patch;delete
122122
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=clustertunnels/status,verbs=get;update;patch
123123
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=clustertunnels/finalizers,verbs=update
124+
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=tunnelbindings,verbs=create;update;patch
124125
//+kubebuilder:rbac:groups=core,resources=configmaps,verbs=get;list;watch;create;update;patch;delete
125126
//+kubebuilder:rbac:groups=core,resources=secrets,verbs=get;list;watch;create;update;patch;delete
126127
//+kubebuilder:rbac:groups=apps,resources=deployments,verbs=get;list;watch;create;update;patch;delete
@@ -178,6 +179,7 @@ func (r *ClusterTunnelReconciler) SetupWithManager(mgr ctrl.Manager) error {
178179
r.Recorder = mgr.GetEventRecorderFor("cloudflare-operator")
179180
return ctrl.NewControllerManagedBy(mgr).
180181
For(&networkingv1alpha1.ClusterTunnel{}).
182+
Owns(&networkingv1alpha1.TunnelBinding{}).
181183
Owns(&corev1.ConfigMap{}).
182184
Owns(&corev1.Secret{}).
183185
Owns(&appsv1.Deployment{}).

internal/controller/generic_tunnel_reconciler.go

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,13 @@ func createManagedResources(r GenericTunnelReconciler) (ctrl.Result, error) {
236236
}
237237

238238
// Create Deployment if it does not exist and scale it
239-
if err := mergeOrApply(r, deploymentForTunnel(r)); err != nil {
239+
if err := apply(r, deploymentForTunnel(r)); err != nil {
240+
return ctrl.Result{}, err
241+
}
242+
243+
// Create dummy TunnelBinding
244+
tunnelBinding := dummyTunnelBindingForTunnel(r)
245+
if err := apply(r, tunnelBinding); err != nil {
240246
return ctrl.Result{}, err
241247
}
242248

@@ -453,3 +459,25 @@ func deploymentForTunnel(r GenericTunnelReconciler) *appsv1.Deployment {
453459
ctrl.SetControllerReference(r.GetTunnel().GetObject(), dep, r.GetScheme())
454460
return dep
455461
}
462+
463+
func dummyTunnelBindingForTunnel(r GenericTunnelReconciler) *networkingv1alpha1.TunnelBinding {
464+
tunnelBinding := &networkingv1alpha1.TunnelBinding{
465+
TypeMeta: metav1.TypeMeta{
466+
APIVersion: networkingv1alpha1.GroupVersion.String(),
467+
Kind: "TunnelBinding",
468+
},
469+
ObjectMeta: metav1.ObjectMeta{
470+
Name: r.GetTunnel().GetName(),
471+
Namespace: r.GetTunnel().GetNamespace(),
472+
},
473+
Subjects: []networkingv1alpha1.TunnelBindingSubject{},
474+
TunnelRef: networkingv1alpha1.TunnelRef{
475+
Kind: r.GetTunnel().GetObject().GetObjectKind().GroupVersionKind().Kind,
476+
Name: r.GetTunnel().GetName(),
477+
DisableDNSUpdates: true, // Nothing to update
478+
},
479+
}
480+
tunnelBinding.SetLabels(labelsForBinding(*tunnelBinding))
481+
ctrl.SetControllerReference(r.GetTunnel().GetObject(), tunnelBinding, r.GetScheme())
482+
return tunnelBinding
483+
}

internal/controller/tunnel_controller.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ func (r *TunnelReconciler) initStruct(ctx context.Context, tunnel Tunnel) error
120120
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=tunnels,verbs=get;list;watch;create;update;patch;delete
121121
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=tunnels/status,verbs=get;update;patch
122122
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=tunnels/finalizers,verbs=update
123+
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=tunnelbindings,verbs=create;update;patch
123124
//+kubebuilder:rbac:groups=core,resources=configmaps,verbs=get;list;watch;create;update;patch;delete
124125
//+kubebuilder:rbac:groups=core,resources=secrets,verbs=get;list;watch;create;update;patch;delete
125126
//+kubebuilder:rbac:groups=apps,resources=deployments,verbs=get;list;watch;create;update;patch;delete
@@ -173,6 +174,7 @@ func (r *TunnelReconciler) SetupWithManager(mgr ctrl.Manager) error {
173174
r.Recorder = mgr.GetEventRecorderFor("cloudflare-operator")
174175
return ctrl.NewControllerManagedBy(mgr).
175176
For(&networkingv1alpha1.Tunnel{}).
177+
Owns(&networkingv1alpha1.TunnelBinding{}).
176178
Owns(&corev1.ConfigMap{}).
177179
Owns(&corev1.Secret{}).
178180
Owns(&appsv1.Deployment{}).

internal/controller/tunnelbinding_controller.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,10 @@ func (r *TunnelBindingReconciler) initStruct(ctx context.Context, tunnelBinding
129129
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=tunnelbindings,verbs=get;list;watch;create;update;patch;delete
130130
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=tunnelbindings/status,verbs=get;update;patch
131131
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=tunnelbindings/finalizers,verbs=update
132-
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=tunnels,verbs=get
133-
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=tunnels/status,verbs=get
134-
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=clustertunnels,verbs=get
135-
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=clustertunnels/status,verbs=get
132+
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=tunnels,verbs=get;list;watch
133+
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=tunnels/status,verbs=get;list;watch
134+
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=clustertunnels,verbs=get;list;watch
135+
//+kubebuilder:rbac:groups=networking.cfargotunnel.com,resources=clustertunnels/status,verbs=get;list;watch
136136
//+kubebuilder:rbac:groups=core,resources=configmaps,verbs=get;list;watch;update;patch
137137
//+kubebuilder:rbac:groups=apps,resources=deployments,verbs=get;update;patch
138138
//+kubebuilder:rbac:groups=core,resources=services,verbs=get;list;watch
@@ -609,5 +609,7 @@ func (r *TunnelBindingReconciler) SetupWithManager(mgr ctrl.Manager) error {
609609
r.Recorder = mgr.GetEventRecorderFor("cloudflare-operator")
610610
return ctrl.NewControllerManagedBy(mgr).
611611
For(&networkingv1alpha1.TunnelBinding{}).
612+
Owns(&networkingv1alpha1.ClusterTunnel{}).
613+
Owns(&networkingv1alpha1.Tunnel{}).
612614
Complete(r)
613615
}

0 commit comments

Comments
 (0)