blob: 4754b2ce0e07eb65ad11b33447c9d268bd01b910 [file] [log] [blame]
Lorenz Brun732a8842024-08-26 23:25:37 +02001From 046483de1453fb8cc1823066844d4617f4f04f85 Mon Sep 17 00:00:00 2001
Lorenz Brunf2b7ab62022-05-04 19:06:00 +02002From: Lorenz Brun <lorenz@monogon.tech>
Lorenz Brun6211e4d2023-11-14 19:09:40 +01003Date: Tue, 14 Nov 2023 13:49:46 +0100
Lorenz Brun732a8842024-08-26 23:25:37 +02004Subject: [PATCH] Adapt to K8s 1.28
Lorenz Brunf2b7ab62022-05-04 19:06:00 +02005
6---
Lorenz Brun732a8842024-08-26 23:25:37 +02007 cmd/nfproxy.go | 6 +++---
8 pkg/controller/controller_endpointslice.go | 6 +++---
9 pkg/proxy/cache.go | 2 +-
10 pkg/proxy/endpoints.go | 10 +++++++++-
11 pkg/proxy/proxy.go | 2 +-
12 pkg/proxy/proxy_endpointslice.go | 2 +-
13 pkg/proxy/service.go | 6 +++---
14 pkg/proxy/tools.go | 2 +-
15 8 files changed, 22 insertions(+), 14 deletions(-)
Lorenz Brunf2b7ab62022-05-04 19:06:00 +020016
Lorenz Brune6e570a2023-11-28 19:23:19 +010017diff --git a/cmd/nfproxy.go b/cmd/nfproxy.go
18index 66972ab..83d8b01 100644
19--- a/cmd/nfproxy.go
20+++ b/cmd/nfproxy.go
Lorenz Brun6211e4d2023-11-14 19:09:40 +010021@@ -44,8 +44,8 @@ import (
22 "k8s.io/client-go/kubernetes/scheme"
23 "k8s.io/client-go/tools/record"
24 "k8s.io/component-base/logs"
25+ nodeutil "k8s.io/component-helpers/node/util"
26 "k8s.io/klog"
27- utilnode "k8s.io/kubernetes/pkg/util/node"
28 )
29
30 var (
31@@ -111,7 +111,7 @@ func main() {
32 }
33
34 // Create event recorder
35- hostname, err := utilnode.GetHostname("")
36+ hostname, err := nodeutil.GetHostname("")
37 if err != nil {
38 klog.Errorf("nfproxy failed to get local host name with error: %+v", err)
39 os.Exit(1)
Lorenz Brune6e570a2023-11-28 19:23:19 +010040@@ -169,7 +169,7 @@ func main() {
41 // instantiate EndpointSlice controller, otherwise Endpoints controller will be used.
42 var ep epController
43 if endpointSlice {
44- ep = controller.NewEndpointSliceController(nfproxy, client, kubeInformerFactory.Discovery().V1beta1().EndpointSlices())
45+ ep = controller.NewEndpointSliceController(nfproxy, client, kubeInformerFactory.Discovery().V1().EndpointSlices())
46 } else {
47 ep = controller.NewEndpointsController(nfproxy, client, kubeInformerFactory.Core().V1().Endpoints())
48 }
49diff --git a/pkg/controller/controller_endpointslice.go b/pkg/controller/controller_endpointslice.go
50index ef97ef5..d060a4d 100644
51--- a/pkg/controller/controller_endpointslice.go
52+++ b/pkg/controller/controller_endpointslice.go
53@@ -20,9 +20,9 @@ import (
54 "fmt"
55
56 v1 "k8s.io/api/core/v1"
57- discovery "k8s.io/api/discovery/v1beta1"
58+ discovery "k8s.io/api/discovery/v1"
59 utilruntime "k8s.io/apimachinery/pkg/util/runtime"
60- "k8s.io/client-go/informers/discovery/v1beta1"
61+ discoveryv1 "k8s.io/client-go/informers/discovery/v1"
62 "k8s.io/client-go/kubernetes"
63 "k8s.io/client-go/kubernetes/scheme"
64 typedcorev1 "k8s.io/client-go/kubernetes/typed/core/v1"
65@@ -119,7 +119,7 @@ func (c *endpointSliceController) Start(stopCh <-chan struct{}) error {
66 func NewEndpointSliceController(
67 proxy proxy.Proxy,
68 kubeClientset kubernetes.Interface,
69- epSliceInformer v1beta1.EndpointSliceInformer) EndpointSliceController {
70+ epSliceInformer discoveryv1.EndpointSliceInformer) EndpointSliceController {
71
72 klog.V(4).Info("Creating event broadcaster for EndpointSlice controller")
73 eventBroadcaster := record.NewBroadcaster()
74diff --git a/pkg/proxy/cache.go b/pkg/proxy/cache.go
75index 92d06ca..7ef0e6f 100644
76--- a/pkg/proxy/cache.go
77+++ b/pkg/proxy/cache.go
78@@ -21,7 +21,7 @@ import (
79 "sync"
80
81 v1 "k8s.io/api/core/v1"
82- discovery "k8s.io/api/discovery/v1beta1"
83+ discovery "k8s.io/api/discovery/v1"
84 "k8s.io/apimachinery/pkg/types"
85 "k8s.io/klog"
86 )
Lorenz Brun732a8842024-08-26 23:25:37 +020087diff --git a/pkg/proxy/endpoints.go b/pkg/proxy/endpoints.go
88index e040285..e288a05 100644
89--- a/pkg/proxy/endpoints.go
90+++ b/pkg/proxy/endpoints.go
91@@ -75,7 +75,15 @@ func (info *BaseEndpointInfo) IP() string {
92
93 // Port returns just the Port part of the endpoint.
94 func (info *BaseEndpointInfo) Port() (int, error) {
95- return utilproxy.PortPart(info.Endpoint)
96+ _, port, err := net.SplitHostPort(info.Endpoint)
97+ if err != nil {
98+ return -1, err
99+ }
100+ portNumber, err := strconv.Atoi(port)
101+ if err != nil {
102+ return -1, err
103+ }
104+ return portNumber, nil
105 }
106
107 // Equal is part of proxy.Endpoint interface.
Lorenz Brune6e570a2023-11-28 19:23:19 +0100108diff --git a/pkg/proxy/proxy.go b/pkg/proxy/proxy.go
109index 7839820..5876784 100644
110--- a/pkg/proxy/proxy.go
111+++ b/pkg/proxy/proxy.go
112@@ -22,7 +22,7 @@ import (
113 utilnftables "github.com/google/nftables"
114 "github.com/sbezverk/nfproxy/pkg/nftables"
115 v1 "k8s.io/api/core/v1"
116- discovery "k8s.io/api/discovery/v1beta1"
117+ discovery "k8s.io/api/discovery/v1"
118 "k8s.io/apimachinery/pkg/types"
119 "k8s.io/client-go/tools/record"
120 "k8s.io/klog"
121diff --git a/pkg/proxy/proxy_endpointslice.go b/pkg/proxy/proxy_endpointslice.go
122index 5310ed3..5c97096 100644
123--- a/pkg/proxy/proxy_endpointslice.go
124+++ b/pkg/proxy/proxy_endpointslice.go
125@@ -21,7 +21,7 @@ import (
126 "time"
127
128 v1 "k8s.io/api/core/v1"
129- discovery "k8s.io/api/discovery/v1beta1"
130+ discovery "k8s.io/api/discovery/v1"
131 "k8s.io/klog"
132 )
133
Lorenz Brunf2b7ab62022-05-04 19:06:00 +0200134diff --git a/pkg/proxy/service.go b/pkg/proxy/service.go
Lorenz Brune6e570a2023-11-28 19:23:19 +0100135index 9cc10b7..6e91fae 100644
Lorenz Brunf2b7ab62022-05-04 19:06:00 +0200136--- a/pkg/proxy/service.go
137+++ b/pkg/proxy/service.go
138@@ -152,7 +152,7 @@ func newServiceInfo(port *v1.ServicePort, service *v1.Service, baseInfo *BaseSer
139
140 func newBaseServiceInfo(port *v1.ServicePort, service *v1.Service) *BaseServiceInfo {
141 onlyNodeLocalEndpoints := false
142- if apiservice.RequestsOnlyLocalTraffic(service) {
143+ if apiservice.ExternalPolicyLocal(service) {
144 onlyNodeLocalEndpoints = true
145 }
146 var stickyMaxAgeSeconds int
Lorenz Brun6211e4d2023-11-14 19:09:40 +0100147@@ -175,7 +175,7 @@ func newBaseServiceInfo(port *v1.ServicePort, service *v1.Service) *BaseServiceI
148 // topologyKeys: service.Spec.TopologyKeys,
149 svcnft: &nftables.SVCnft{},
150 }
151- if service.Spec.IPFamilies != nil {
152+ if len(service.Spec.IPFamilies) > 0 {
153 info.ipFamilies = service.Spec.IPFamilies
154 } else {
155 info.ipFamilies = make([]v1.IPFamily, 1)
Lorenz Brune6e570a2023-11-28 19:23:19 +0100156diff --git a/pkg/proxy/tools.go b/pkg/proxy/tools.go
157index 06c4ae3..3f7f0b9 100644
158--- a/pkg/proxy/tools.go
159+++ b/pkg/proxy/tools.go
160@@ -26,7 +26,7 @@ import (
161
162 utilnftables "github.com/google/nftables"
163 v1 "k8s.io/api/core/v1"
164- discovery "k8s.io/api/discovery/v1beta1"
165+ discovery "k8s.io/api/discovery/v1"
166 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
167 "k8s.io/apimachinery/pkg/types"
168 "k8s.io/apimachinery/pkg/util/intstr"
Lorenz Brunf2b7ab62022-05-04 19:06:00 +0200169--
Lorenz Brun732a8842024-08-26 23:25:37 +02001702.44.1
Lorenz Brunf2b7ab62022-05-04 19:06:00 +0200171