Skip to content

Commit

Permalink
Registry k8s-gateways in version v1beta1 (#358)
Browse files Browse the repository at this point in the history
* registry k8s-gatewas in version v1beta1

* handle v1beta1
  • Loading branch information
MartinWeindel authored Feb 28, 2024
1 parent b73aa76 commit 2c77617
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 0 deletions.
2 changes: 2 additions & 0 deletions cmd/compound/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import (
_ "k8s.io/client-go/plugin/pkg/client/auth/oidc"
gatewayapisv1 "sigs.k8s.io/gateway-api/apis/v1"
gatewayapisv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2"
gatewayapisv1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1"

"github.com/gardener/external-dns-management/pkg/apis/dns/v1alpha1"
_ "github.com/gardener/external-dns-management/pkg/controller/annotation/annotations"
Expand Down Expand Up @@ -70,6 +71,7 @@ func init() {
resources.Register(istionetworkingv1alpha3.SchemeBuilder)
resources.Register(istionetworkingv1beta1.SchemeBuilder)
resources.Register(gatewayapisv1alpha2.SchemeBuilder)
resources.Register(gatewayapisv1beta1.SchemeBuilder)
resources.Register(gatewayapisv1.SchemeBuilder)

embed.RegisterCreateServerFunc(remote.CreateServer)
Expand Down
21 changes: 21 additions & 0 deletions pkg/controller/source/gateways/gatewayapi/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import (
"k8s.io/utils/ptr"
gatewayapisv1 "sigs.k8s.io/gateway-api/apis/v1"
gatewayapisv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2"
gatewayapisv1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1"

"github.com/gardener/external-dns-management/pkg/dns"
"github.com/gardener/external-dns-management/pkg/dns/source"
Expand Down Expand Up @@ -93,6 +94,12 @@ func (s *gatewaySource) extractServerHosts(obj resources.ObjectData) ([]string,
hosts = append(hosts, string(*listener.Hostname))
}
}
case *gatewayapisv1beta1.Gateway:
for _, listener := range data.Spec.Listeners {
if listener.Hostname != nil {
hosts = append(hosts, string(*listener.Hostname))
}
}
case *gatewayapisv1alpha2.Gateway:
for _, listener := range data.Spec.Listeners {
if listener.Hostname != nil {
Expand Down Expand Up @@ -126,6 +133,10 @@ func (s *gatewaySource) extractServerHosts(obj resources.ObjectData) ([]string,
for _, h := range r.Spec.Hostnames {
hosts = addHost(hosts, string(h))
}
case *gatewayapisv1beta1.HTTPRoute:
for _, h := range r.Spec.Hostnames {
hosts = addHost(hosts, string(h))
}
case *gatewayapisv1alpha2.HTTPRoute:
for _, h := range r.Spec.Hostnames {
hosts = addHost(hosts, string(h))
Expand All @@ -151,6 +162,16 @@ func (s *gatewaySource) getTargets(obj resources.ObjectData) utils.StringSet {
ipAddresses = append(ipAddresses, address.Value)
}
}
case *gatewayapisv1beta1.Gateway:
for _, address := range data.Status.Addresses {
t := address.Type
switch {
case t != nil && *t == gatewayapisv1beta1.HostnameAddressType:
hostnames = append(hostnames, address.Value)
case t == nil || *t == gatewayapisv1beta1.IPAddressType:
ipAddresses = append(ipAddresses, address.Value)
}
}
case *gatewayapisv1alpha2.Gateway:
for _, address := range data.Status.Addresses {
t := address.Type
Expand Down
12 changes: 12 additions & 0 deletions pkg/controller/source/gateways/gatewayapi/httproutesReconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"github.com/gardener/controller-manager-library/pkg/resources"
gatewayapisv1 "sigs.k8s.io/gateway-api/apis/v1"
gatewayapisv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2"
gatewayapisv1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1"
)

func HTTPRoutesReconciler(c controller.Interface) (reconcile.Interface, error) {
Expand Down Expand Up @@ -70,6 +71,17 @@ func extractGatewayNames(route resources.ObjectData) resources.ObjectNameSet {
gatewayNames.Add(resources.NewObjectName(namespace, string(ref.Name)))
}
}
case *gatewayapisv1beta1.HTTPRoute:
for _, ref := range data.Spec.ParentRefs {
if (ref.Group == nil || string(*ref.Group) == GroupKindGateway.Group) &&
(ref.Kind == nil || string(*ref.Kind) == GroupKindGateway.Kind) {
namespace := data.Namespace
if ref.Namespace != nil {
namespace = string(*ref.Namespace)
}
gatewayNames.Add(resources.NewObjectName(namespace, string(ref.Name)))
}
}
case *gatewayapisv1alpha2.HTTPRoute:
for _, ref := range data.Spec.ParentRefs {
if (ref.Group == nil || string(*ref.Group) == GroupKindGateway.Group) &&
Expand Down

0 comments on commit 2c77617

Please sign in to comment.