inlets / inlets-operator

Get public TCP LoadBalancers for local Kubernetes clusters
https://docs.inlets.dev/reference/inlets-operator
MIT License
1.35k stars 98 forks source link

Make inlets version for tunnel servers configurable #147

Closed alexellis closed 3 years ago

alexellis commented 3 years ago

Signed-off-by: Alex Ellis (OpenFaaS Ltd) alexellis2@gmail.com

Description

Enable a dynamic server version

This was requested by a community member. Prior to the change, the client version was configurable via helm, but the server version was not.

With this change in place, you can upgrade exit-servers by deleting their tunnel resource. Inlets will then create a new exit server with the specified release and create a new client for it.

The helm chart values.yaml file now accepts renamed flags also: inletsRelease and inletsClientImage

I.e.

kubectl apply -f https://raw.githubusercontent.com/inlets/inlets-operator/master/contrib/nginx-sample-deployment.yaml
kubectl expose deployment nginx-1 --port=80 --type=LoadBalancer

# See the first tunnel created

# Deploy the operator with a new `--inlets-release` value, and:

kubectl delete tunnel/nginx-1-tunnel-client

# Wait a few moments and it'll create a new tunnel server and client with the specified version.

How Has This Been Tested?

Tested using the binary running on my local machine, DO as the provider and the workflow above. Before I couldn't run the status command due to using 0.8.5, then after I was able to use that command.

How are existing users impacted? What migration steps/scripts do we need?

This brings breaking change to the helm chart and also to arkade

inletsClientImage: "ghcr.io/inlets/inlets-pro:0.9.1"
inletsRelease: "0.9.1"

https://github.com/alexellis/arkade/pull/556

Checklist:

I have:

alexellis commented 3 years ago

@starbops as requested on Slack today, this change is ready for you.

starbops commented 3 years ago

Thanks for the quick fix, bravo!