cmd/k8s-operator: Allow custom ingress class names (#16472)

This commit modifies the k8s operator to allow for customisation of the ingress class name
via a new `OPERATOR_INGRESS_CLASS_NAME` environment variable. For backwards compatibility,
this defaults to `tailscale`.

When using helm, a new `ingress.name` value is provided that will set this environment variable
and modify the name of the deployed `IngressClass` resource.

Fixes https://github.com/tailscale/tailscale/issues/16248

Signed-off-by: David Bond <davidsbond93@gmail.com>
This commit is contained in:
David Bond
2025-07-07 12:12:59 +01:00
committed by GitHub
parent 4f3355e499
commit 84eac7b8de
10 changed files with 83 additions and 52 deletions

View File

@@ -36,7 +36,8 @@ func TestTailscaleIngress(t *testing.T) {
t.Fatal(err)
}
ingR := &IngressReconciler{
Client: fc,
Client: fc,
ingressClassName: "tailscale",
ssr: &tailscaleSTSReconciler{
Client: fc,
tsClient: ft,
@@ -120,7 +121,8 @@ func TestTailscaleIngressHostname(t *testing.T) {
t.Fatal(err)
}
ingR := &IngressReconciler{
Client: fc,
Client: fc,
ingressClassName: "tailscale",
ssr: &tailscaleSTSReconciler{
Client: fc,
tsClient: ft,
@@ -245,7 +247,8 @@ func TestTailscaleIngressWithProxyClass(t *testing.T) {
t.Fatal(err)
}
ingR := &IngressReconciler{
Client: fc,
Client: fc,
ingressClassName: "tailscale",
ssr: &tailscaleSTSReconciler{
Client: fc,
tsClient: ft,
@@ -350,7 +353,8 @@ func TestTailscaleIngressWithServiceMonitor(t *testing.T) {
t.Fatal(err)
}
ingR := &IngressReconciler{
Client: fc,
Client: fc,
ingressClassName: "tailscale",
ssr: &tailscaleSTSReconciler{
Client: fc,
tsClient: ft,
@@ -498,7 +502,8 @@ func TestIngressProxyClassAnnotation(t *testing.T) {
mustCreate(t, fc, ing)
ingR := &IngressReconciler{
Client: fc,
Client: fc,
ingressClassName: "tailscale",
ssr: &tailscaleSTSReconciler{
Client: fc,
tsClient: &fakeTSClient{},
@@ -568,7 +573,8 @@ func TestIngressLetsEncryptStaging(t *testing.T) {
mustCreate(t, fc, ing)
ingR := &IngressReconciler{
Client: fc,
Client: fc,
ingressClassName: "tailscale",
ssr: &tailscaleSTSReconciler{
Client: fc,
tsClient: &fakeTSClient{},
@@ -675,8 +681,9 @@ func TestEmptyPath(t *testing.T) {
t.Fatal(err)
}
ingR := &IngressReconciler{
recorder: fr,
Client: fc,
recorder: fr,
Client: fc,
ingressClassName: "tailscale",
ssr: &tailscaleSTSReconciler{
Client: fc,
tsClient: ft,