diff --git a/go.mod b/go.mod index d99a6a40d0..73117d6a5c 100644 --- a/go.mod +++ b/go.mod @@ -1,13 +1,13 @@ module github.com/nginxinc/nginx-gateway-fabric -go 1.22.0 +go 1.22.6 require ( github.com/go-kit/log v0.2.1 github.com/go-logr/logr v1.4.2 github.com/google/go-cmp v0.6.0 github.com/maxbrunsfeld/counterfeiter/v6 v6.9.0 - github.com/nginxinc/nginx-plus-go-client v1.3.0 + github.com/nginxinc/nginx-plus-go-client/v2 v2.0.1 github.com/nginxinc/nginx-prometheus-exporter v1.3.0 github.com/nginxinc/telemetry-exporter v0.1.2 github.com/onsi/ginkgo/v2 v2.20.2 @@ -60,6 +60,7 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/nginxinc/nginx-plus-go-client v1.2.2 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect diff --git a/go.sum b/go.sum index 8b42daac71..c5c8f927aa 100644 --- a/go.sum +++ b/go.sum @@ -87,8 +87,10 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/nginxinc/nginx-plus-go-client v1.3.0 h1:q/aeT4B5k0KLwWlefoBzfLfraBBvIKLuDg+lLFWAo4I= -github.com/nginxinc/nginx-plus-go-client v1.3.0/go.mod h1:n8OFLzrJulJ2fur28Cwa1Qp5DZNS2VicLV+Adt30LQ4= +github.com/nginxinc/nginx-plus-go-client v1.2.2 h1:sl7HqNDDZq2EVu0eQQVoZ6PKYGa4h2dB/Qr5Ib0YKGw= +github.com/nginxinc/nginx-plus-go-client v1.2.2/go.mod h1:n8OFLzrJulJ2fur28Cwa1Qp5DZNS2VicLV+Adt30LQ4= +github.com/nginxinc/nginx-plus-go-client/v2 v2.0.1 h1:5VVK38bnELMDWnwfF6dSv57ResXh9AUzeDa72ENj94o= +github.com/nginxinc/nginx-plus-go-client/v2 v2.0.1/go.mod h1:He+1izxYxVVO5/C9ZTukwOpvkAx5eS19nRQgKXDhX5I= github.com/nginxinc/nginx-prometheus-exporter v1.3.0 h1:1JtdxsZH0Uwhu1nL/j/QyOXytP5V5j68AEo2X+DFWb0= github.com/nginxinc/nginx-prometheus-exporter v1.3.0/go.mod h1:hXoH+X6aIKSyQuO6QTIiPKH3eZyxqy/wW8GYiE3dflU= github.com/nginxinc/telemetry-exporter v0.1.2 h1:97vUGhQYgQ2KEsXKCBmr5gqfuujJCKPHwdg5HKoANUs= diff --git a/internal/mode/static/handler.go b/internal/mode/static/handler.go index ff89a4526b..a1321770a9 100644 --- a/internal/mode/static/handler.go +++ b/internal/mode/static/handler.go @@ -7,7 +7,7 @@ import ( "time" "github.com/go-logr/logr" - ngxclient "github.com/nginxinc/nginx-plus-go-client/client" + ngxclient "github.com/nginxinc/nginx-plus-go-client/v2/client" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" @@ -349,7 +349,7 @@ func (h *eventHandlerImpl) updateUpstreamServers( } var upstreams []upstream - prevUpstreams, err := h.cfg.nginxRuntimeMgr.GetUpstreams() + prevUpstreams, err := h.cfg.nginxRuntimeMgr.GetUpstreams(context.TODO()) if err != nil { logger.Error(err, "failed to get upstreams from API, reloading configuration instead") return reload() diff --git a/internal/mode/static/handler_test.go b/internal/mode/static/handler_test.go index 93ad4e1b61..4f87e18371 100644 --- a/internal/mode/static/handler_test.go +++ b/internal/mode/static/handler_test.go @@ -4,7 +4,7 @@ import ( "context" "errors" - ngxclient "github.com/nginxinc/nginx-plus-go-client/client" + ngxclient "github.com/nginxinc/nginx-plus-go-client/v2/client" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" "go.uber.org/zap" diff --git a/internal/mode/static/metrics/collectors/nginx.go b/internal/mode/static/metrics/collectors/nginx.go index f8ce60b26a..d81e69eca8 100644 --- a/internal/mode/static/metrics/collectors/nginx.go +++ b/internal/mode/static/metrics/collectors/nginx.go @@ -4,7 +4,7 @@ import ( "fmt" "github.com/go-kit/log" - "github.com/nginxinc/nginx-plus-go-client/client" + "github.com/nginxinc/nginx-plus-go-client/v2/client" prometheusClient "github.com/nginxinc/nginx-prometheus-exporter/client" nginxCollector "github.com/nginxinc/nginx-prometheus-exporter/collector" "github.com/prometheus/client_golang/prometheus" diff --git a/internal/mode/static/nginx/config/convert.go b/internal/mode/static/nginx/config/convert.go index ff20bf888d..37aede3664 100644 --- a/internal/mode/static/nginx/config/convert.go +++ b/internal/mode/static/nginx/config/convert.go @@ -3,7 +3,7 @@ package config import ( "fmt" - ngxclient "github.com/nginxinc/nginx-plus-go-client/client" + ngxclient "github.com/nginxinc/nginx-plus-go-client/v2/client" "github.com/nginxinc/nginx-gateway-fabric/internal/mode/static/state/resolver" ) diff --git a/internal/mode/static/nginx/config/convert_test.go b/internal/mode/static/nginx/config/convert_test.go index 6be41ccda6..bb3fb72be3 100644 --- a/internal/mode/static/nginx/config/convert_test.go +++ b/internal/mode/static/nginx/config/convert_test.go @@ -3,7 +3,7 @@ package config import ( "testing" - ngxclient "github.com/nginxinc/nginx-plus-go-client/client" + ngxclient "github.com/nginxinc/nginx-plus-go-client/v2/client" . "github.com/onsi/gomega" "github.com/nginxinc/nginx-gateway-fabric/internal/mode/static/state/resolver" diff --git a/internal/mode/static/nginx/runtime/clients.go b/internal/mode/static/nginx/runtime/clients.go index a01a8ef09f..3b5c67e7d4 100644 --- a/internal/mode/static/nginx/runtime/clients.go +++ b/internal/mode/static/nginx/runtime/clients.go @@ -6,7 +6,7 @@ import ( "net" "net/http" - "github.com/nginxinc/nginx-plus-go-client/client" + "github.com/nginxinc/nginx-plus-go-client/v2/client" ) const ( diff --git a/internal/mode/static/nginx/runtime/manager.go b/internal/mode/static/nginx/runtime/manager.go index 45d24dbb75..33c9d7fff3 100644 --- a/internal/mode/static/nginx/runtime/manager.go +++ b/internal/mode/static/nginx/runtime/manager.go @@ -12,7 +12,7 @@ import ( "time" "github.com/go-logr/logr" - ngxclient "github.com/nginxinc/nginx-plus-go-client/client" + ngxclient "github.com/nginxinc/nginx-plus-go-client/v2/client" "k8s.io/apimachinery/pkg/util/wait" ) @@ -38,6 +38,7 @@ var childProcPathFmt = "/proc/%[1]v/task/%[1]v/children" type NginxPlusClient interface { UpdateHTTPServers( + ctx context.Context, upstream string, servers []ngxclient.UpstreamServer, ) ( @@ -46,7 +47,7 @@ type NginxPlusClient interface { updated []ngxclient.UpstreamServer, err error, ) - GetUpstreams() (*ngxclient.Upstreams, error) + GetUpstreams(ctx context.Context) (*ngxclient.Upstreams, error) } //counterfeiter:generate . Manager @@ -62,7 +63,7 @@ type Manager interface { UpdateHTTPServers(string, []ngxclient.UpstreamServer) error // GetUpstreams uses the NGINX Plus API to get the upstreams. // Only usable if running NGINX Plus. - GetUpstreams() (ngxclient.Upstreams, error) + GetUpstreams(ctx context.Context) (ngxclient.Upstreams, error) } // MetricsCollector is an interface for the metrics of the NGINX runtime manager. @@ -150,7 +151,7 @@ func (m *ManagerImpl) UpdateHTTPServers(upstream string, servers []ngxclient.Ups panic("cannot update HTTP upstream servers: NGINX Plus not enabled") } - added, deleted, updated, err := m.ngxPlusClient.UpdateHTTPServers(upstream, servers) + added, deleted, updated, err := m.ngxPlusClient.UpdateHTTPServers(context.TODO(), upstream, servers) m.logger.V(1).Info("Added upstream servers", "count", len(added)) m.logger.V(1).Info("Deleted upstream servers", "count", len(deleted)) m.logger.V(1).Info("Updated upstream servers", "count", len(updated)) @@ -160,12 +161,12 @@ func (m *ManagerImpl) UpdateHTTPServers(upstream string, servers []ngxclient.Ups // GetUpstreams uses the NGINX Plus API to get the upstreams. // Only usable if running NGINX Plus. -func (m *ManagerImpl) GetUpstreams() (ngxclient.Upstreams, error) { +func (m *ManagerImpl) GetUpstreams(ctx context.Context) (ngxclient.Upstreams, error) { if !m.IsPlus() { panic("cannot get HTTP upstream servers: NGINX Plus not enabled") } - upstreams, err := m.ngxPlusClient.GetUpstreams() + upstreams, err := m.ngxPlusClient.GetUpstreams(ctx) if err != nil { return nil, err } diff --git a/internal/mode/static/nginx/runtime/manager_test.go b/internal/mode/static/nginx/runtime/manager_test.go index 15eb498a7f..4aa923e485 100644 --- a/internal/mode/static/nginx/runtime/manager_test.go +++ b/internal/mode/static/nginx/runtime/manager_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - ngxclient "github.com/nginxinc/nginx-plus-go-client/client" + ngxclient "github.com/nginxinc/nginx-plus-go-client/v2/client" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" "sigs.k8s.io/controller-runtime/pkg/log/zap" @@ -151,7 +151,7 @@ var _ = Describe("NGINX Runtime Manager", func() { }) It("returns no upstreams from NGINX Plus API when upstreams are nil", func() { - upstreams, err := manager.GetUpstreams() + upstreams, err := manager.GetUpstreams(context.Background()) Expect(err).To(HaveOccurred()) Expect(upstreams).To(BeEmpty()) @@ -179,7 +179,7 @@ var _ = Describe("NGINX Runtime Manager", func() { ngxPlusClient.GetUpstreamsReturns(&expUpstreams, nil) - upstreams, err := manager.GetUpstreams() + upstreams, err := manager.GetUpstreams(context.Background()) Expect(err).NotTo(HaveOccurred()) Expect(expUpstreams).To(Equal(upstreams)) @@ -188,7 +188,7 @@ var _ = Describe("NGINX Runtime Manager", func() { It("returns an error when GetUpstreams fails", func() { ngxPlusClient.GetUpstreamsReturns(nil, errors.New("failed to get upstreams")) - upstreams, err := manager.GetUpstreams() + upstreams, err := manager.GetUpstreams(context.Background()) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError("failed to get upstreams")) @@ -213,7 +213,7 @@ var _ = Describe("NGINX Runtime Manager", func() { It("should panic when fetching HTTP upstream servers", func() { upstreams := func() { - _, err = manager.GetUpstreams() + _, err = manager.GetUpstreams(context.Background()) } Expect(upstreams).To(Panic()) diff --git a/internal/mode/static/nginx/runtime/runtimefakes/fake_manager.go b/internal/mode/static/nginx/runtime/runtimefakes/fake_manager.go index 2538e32de3..89af264aca 100644 --- a/internal/mode/static/nginx/runtime/runtimefakes/fake_manager.go +++ b/internal/mode/static/nginx/runtime/runtimefakes/fake_manager.go @@ -6,7 +6,7 @@ import ( "sync" "github.com/nginxinc/nginx-gateway-fabric/internal/mode/static/nginx/runtime" - "github.com/nginxinc/nginx-plus-go-client/client" + "github.com/nginxinc/nginx-plus-go-client/v2/client" ) type FakeManager struct { diff --git a/internal/mode/static/nginx/runtime/runtimefakes/fake_nginx_plus_client.go b/internal/mode/static/nginx/runtime/runtimefakes/fake_nginx_plus_client.go index 3ea431d29b..116c17af25 100644 --- a/internal/mode/static/nginx/runtime/runtimefakes/fake_nginx_plus_client.go +++ b/internal/mode/static/nginx/runtime/runtimefakes/fake_nginx_plus_client.go @@ -5,7 +5,7 @@ import ( "sync" "github.com/nginxinc/nginx-gateway-fabric/internal/mode/static/nginx/runtime" - "github.com/nginxinc/nginx-plus-go-client/client" + "github.com/nginxinc/nginx-plus-go-client/v2/client" ) type FakeNginxPlusClient struct { diff --git a/tests/go.mod b/tests/go.mod index d4c16e5eda..859c35b37b 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -1,6 +1,6 @@ module github.com/nginxinc/nginx-gateway-fabric/tests -go 1.22.2 +go 1.22.6 require ( github.com/nginxinc/nginx-gateway-fabric v0.0.0