Skip to content

Commit 3df5a5b

Browse files
authored
Merge pull request #213 from jp-gouin/fix-ingress
fix ingress creation, use the ingress host in Kubeconfig when enabled
2 parents 2a7541c + 2019dec commit 3df5a5b

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

pkg/controller/cluster/server/ingress.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,6 @@ func configureIngressOptions(ingress *networkingv1.Ingress, ingressClassName str
9191
ingress.Annotations[nginxBackendProtocolAnnotation] = "HTTPS"
9292
}
9393
}
94+
func IngressName(clusterName string) string {
95+
return controller.SafeConcatNameWithPrefix(clusterName, "ingress")
96+
}

pkg/controller/controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ func Addresses(ctx context.Context, client ctrlruntimeclient.Client) ([]string,
7070
}
7171

7272
addresses := make([]string, len(nodeList.Items))
73-
for _, node := range nodeList.Items {
74-
addresses = append(addresses, nodeAddress(&node))
73+
for i, node := range nodeList.Items {
74+
addresses[i] = nodeAddress(&node)
7575
}
7676

7777
return addresses, nil

pkg/controller/kubeconfig/kubeconfig.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"github.com/rancher/k3k/pkg/controller/cluster/server"
1414
"github.com/rancher/k3k/pkg/controller/cluster/server/bootstrap"
1515
v1 "k8s.io/api/core/v1"
16+
networkingv1 "k8s.io/api/networking/v1"
1617
"k8s.io/apimachinery/pkg/types"
1718
"k8s.io/apiserver/pkg/authentication/user"
1819
clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
@@ -105,6 +106,18 @@ func getURLFromService(ctx context.Context, client client.Client, cluster *v1alp
105106
nodePort := k3kService.Spec.Ports[0].NodePort
106107
url = fmt.Sprintf("https://%s:%d", hostServerIP, nodePort)
107108
}
109+
if cluster.Spec.Expose.Ingress != nil && cluster.Spec.Expose.Ingress.Enabled {
110+
var k3kIngress networkingv1.Ingress
111+
ingressKey := types.NamespacedName{
112+
Name: server.IngressName(cluster.Name),
113+
Namespace: cluster.Namespace,
114+
}
115+
116+
if err := client.Get(ctx, ingressKey, &k3kIngress); err != nil {
117+
return "", err
118+
}
119+
url = fmt.Sprintf("https://%s", k3kIngress.Spec.Rules[0].Host)
120+
}
108121

109122
return url, nil
110123
}

0 commit comments

Comments
 (0)