Skip to content

Commit 6c38de5

Browse files
committed
Document Uplink licence replacement
Document the re-runnable steps for replacing the Uplink licence. Restart only licence-consuming workloads so Prometheus and the other control-plane services remain available. Signed-off-by: Alex Ellis (OpenFaaS Ltd) <alexellis2@gmail.com>
1 parent 1eab5bc commit 6c38de5

2 files changed

Lines changed: 57 additions & 1 deletion

File tree

docs/uplink/installation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ kubectl create namespace inlets
5151

5252
Create the required secret with your inlets-uplink license.
5353

54-
!!! note "Check that your license key is in lower-case"
54+
!!! note "Check that your licence key is in upper-case"
5555

5656
There is a known issue with LemonSqueezy where the UI will copy the license key in lower-case, it needs to be converted to upper-case before being used with Inlets Uplink.
5757

docs/uplink/troubleshooting.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,62 @@ kubectl logs -n inlets deploy/uplink-operator -f
8484

8585
The logs will show you if a tunnel did not get reconciled because you reached the maximum number of tunnels allowed by your license.
8686

87+
### Need to update your licence?
88+
89+
The easiest way to update the licence is to delete the existing Secret,
90+
create a new one, then restart the operator and tunnel servers. Make sure the
91+
LemonSqueezy key is in upper-case as shown in the
92+
[installation instructions](installation.md#create-a-namespace-for-the-chart-and-add-the-license-secret).
93+
94+
Replace the Secret in the core namespace:
95+
96+
```bash
97+
kubectl delete secret -n inlets \
98+
inlets-uplink-license
99+
100+
kubectl create secret generic \
101+
-n inlets \
102+
inlets-uplink-license \
103+
--from-file license=$HOME/.inlets/LICENSE_UPLINK
104+
```
105+
106+
Repeat these commands for each tunnel namespace:
107+
108+
```bash
109+
export NAMESPACE=tenant1
110+
111+
kubectl delete secret -n $NAMESPACE \
112+
inlets-uplink-license
113+
114+
kubectl create secret generic \
115+
-n $NAMESPACE \
116+
inlets-uplink-license \
117+
--from-file license=$HOME/.inlets/LICENSE_UPLINK
118+
```
119+
120+
Restart the operator so that it loads the new licence:
121+
122+
```bash
123+
kubectl rollout restart deployment/uplink-operator -n inlets
124+
```
125+
126+
Scale all tunnel servers to zero, wait for them to stop, then scale them back
127+
to one replica:
128+
129+
```bash
130+
kubectl get deployment -A \
131+
-l uplink.inlets.dev/managed=true \
132+
-o yaml | kubectl scale --replicas=0 -f -
133+
134+
kubectl get deployment -A \
135+
-l uplink.inlets.dev/managed=true \
136+
-o yaml | kubectl rollout status -f -
137+
138+
kubectl get deployment -A \
139+
-l uplink.inlets.dev/managed=true \
140+
-o yaml | kubectl scale --replicas=1 -f -
141+
```
142+
87143
## Client router
88144

89145
The client router handles incoming WebSocket connections from tunnel clients and routes them to the appropriate tunnel server.

0 commit comments

Comments
 (0)