@@ -18,6 +18,8 @@ import (
1818 "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
1919)
2020
21+ const CREDENTIALS_JSON_FILENAME string = "credentials.json"
22+
2123type GenericTunnelReconciler interface {
2224 k8s.GenericReconciler
2325
@@ -30,6 +32,10 @@ type GenericTunnelReconciler interface {
3032 SetTunnelCreds (string )
3133}
3234
35+ func TunnelNamespacedName (r GenericTunnelReconciler ) apitypes.NamespacedName {
36+ return apitypes.NamespacedName {Name : r .GetTunnel ().GetName (), Namespace : r .GetTunnel ().GetNamespace ()}
37+ }
38+
3339// labelsForTunnel returns the labels for selecting the resources
3440// belonging to the given Tunnel CR name.
3541func labelsForTunnel (cf Tunnel ) map [string ]string {
@@ -126,6 +132,12 @@ func setupNewTunnel(r GenericTunnelReconciler) error {
126132 r .GetLog ().Info ("Tunnel created on Cloudflare" )
127133 r .GetRecorder ().Event (r .GetTunnel ().GetObject (), corev1 .EventTypeNormal , "Created" , "Tunnel created successfully on Cloudflare" )
128134 r .SetTunnelCreds (creds )
135+ } else {
136+ secret := & corev1.Secret {}
137+ if err := r .GetClient ().Get (r .GetContext (), TunnelNamespacedName (r ), secret ); err != nil {
138+ r .GetLog ().Error (err , "Error in getting existing secret, tunnel restart will crash, please recreate tunnel" )
139+ }
140+ r .SetTunnelCreds (string (secret .Data [CREDENTIALS_JSON_FILENAME ]))
129141 }
130142
131143 // Add finalizer for tunnel
@@ -149,7 +161,7 @@ func cleanupTunnel(r GenericTunnelReconciler) (ctrl.Result, bool, error) {
149161 r .GetRecorder ().Event (r .GetTunnel ().GetObject (), corev1 .EventTypeNormal , "Deleting" , "Starting Tunnel Deletion" )
150162 cfDeployment := & appsv1.Deployment {}
151163 var bypass bool
152- if err := r .GetClient ().Get (r .GetContext (), apitypes. NamespacedName { Name : r . GetTunnel (). GetName (), Namespace : r . GetTunnel (). GetNamespace ()} , cfDeployment ); err != nil {
164+ if err := r .GetClient ().Get (r .GetContext (), TunnelNamespacedName ( r ) , cfDeployment ); err != nil {
153165 r .GetLog ().Error (err , "Error in getting deployments, might already be deleted?" )
154166 bypass = true
155167 }
@@ -294,7 +306,7 @@ func secretForTunnel(r GenericTunnelReconciler) *corev1.Secret {
294306 Namespace : r .GetTunnel ().GetNamespace (),
295307 Labels : ls ,
296308 },
297- StringData : map [string ]string {"credentials.json" : r .GetTunnelCreds ()},
309+ StringData : map [string ]string {CREDENTIALS_JSON_FILENAME : r .GetTunnelCreds ()},
298310 }
299311 // Set Tunnel instance as the owner and controller
300312 ctrl .SetControllerReference (r .GetTunnel ().GetObject (), sec , r .GetScheme ())
0 commit comments