From ac02060441249632aa2dc9ba171c2e66616ef7dc Mon Sep 17 00:00:00 2001 From: Oleg Isakov Date: Thu, 30 Jan 2025 17:41:55 +0200 Subject: [PATCH 1/3] bump go-client; update mocks --- go.mod | 17 ++++---- go.sum | 46 +++++++++++---------- internal/mocks/lb_manager.go | 1 + internal/mocks/ssl_service.go | 74 ++++++++++++++++++++++++++++++++++ internal/mocks/store.go | 1 + internal/mocks/sync_manager.go | 1 + internal/mocks/tls_manager.go | 1 + 7 files changed, 111 insertions(+), 30 deletions(-) diff --git a/go.mod b/go.mod index 79eaead..58a1e58 100644 --- a/go.mod +++ b/go.mod @@ -5,11 +5,11 @@ go 1.22.0 require ( github.com/joho/godotenv v1.5.1 github.com/jonboulle/clockwork v0.4.0 - github.com/onsi/gomega v1.33.1 - github.com/serverscom/serverscom-go-client v1.0.7 + github.com/onsi/gomega v1.36.2 + github.com/serverscom/serverscom-go-client v1.0.12 github.com/spf13/pflag v1.0.5 go.uber.org/mock v0.4.0 - golang.org/x/net v0.26.0 + golang.org/x/net v0.33.0 k8s.io/api v0.31.1 k8s.io/apimachinery v0.31.1 k8s.io/client-go v0.31.1 @@ -25,6 +25,7 @@ require ( github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/swag v0.22.4 // indirect + github.com/go-resty/resty/v2 v2.16.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect @@ -42,11 +43,11 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/x448/float16 v0.8.4 // indirect golang.org/x/oauth2 v0.21.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect - golang.org/x/text v0.16.0 // indirect - golang.org/x/time v0.3.0 // indirect - google.golang.org/protobuf v1.34.2 // indirect + golang.org/x/sys v0.28.0 // indirect + golang.org/x/term v0.27.0 // indirect + golang.org/x/text v0.21.0 // indirect + golang.org/x/time v0.6.0 // indirect + google.golang.org/protobuf v1.36.1 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 7044a85..af45666 100644 --- a/go.sum +++ b/go.sum @@ -16,6 +16,8 @@ github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-resty/resty/v2 v2.16.2 h1:CpRqTjIzq/rweXUt9+GxzzQdlkqMdt8Lm/fuK/CAbAg= +github.com/go-resty/resty/v2 v2.16.2/go.mod h1:0fHAoK7JoBy/Ch36N8VFeMsK7xQOHhvWaC3iOktwmIU= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= @@ -32,8 +34,8 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM= -github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= +github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad h1:a6HEuzUHeKH6hwfN/ZoQgRgVIWFJljSWa/zetS2WTvg= +github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/imdario/mergo v0.3.7 h1:Y+UAYTZ7gDEuOfhxKWy+dvb5dRQ6rJjFSdX2HZY1/gI= @@ -64,10 +66,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/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= -github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= -github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= -github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= +github.com/onsi/ginkgo/v2 v2.22.1 h1:QW7tbJAUDyVDVOM5dFa7qaybo+CRfR7bemlQUN6Z8aM= +github.com/onsi/ginkgo/v2 v2.22.1/go.mod h1:S6aTpoRsSq2cZOd+pssHAlKW/Q/jZt6cPrPlnj4a1xM= +github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8= +github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -75,8 +77,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/serverscom/serverscom-go-client v1.0.7 h1:3+Gld2eueCNtUOaHn9DmQ9ABowUpAkAMbZlKxeMFVOg= -github.com/serverscom/serverscom-go-client v1.0.7/go.mod h1:X4/JkqDMjEFAqp0hqdRTmcMXc6V2xCitj+kmNyne3/U= +github.com/serverscom/serverscom-go-client v1.0.12 h1:OAHfh8cuC+BiVzU4avI3yhDpejFHSbzC91WfAx8lE84= +github.com/serverscom/serverscom-go-client v1.0.12/go.mod h1:BLuNrLl7gNG3y9tEBXkRjPlAI/URY4yIadyvpt0rE2Q= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -105,8 +107,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -115,28 +117,28 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= +golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk= +google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/internal/mocks/lb_manager.go b/internal/mocks/lb_manager.go index 675be47..3a64e53 100644 --- a/internal/mocks/lb_manager.go +++ b/internal/mocks/lb_manager.go @@ -21,6 +21,7 @@ import ( type MockLBManagerInterface struct { ctrl *gomock.Controller recorder *MockLBManagerInterfaceMockRecorder + isgomock struct{} } // MockLBManagerInterfaceMockRecorder is the mock recorder for MockLBManagerInterface. diff --git a/internal/mocks/ssl_service.go b/internal/mocks/ssl_service.go index f00c52d..c967dce 100644 --- a/internal/mocks/ssl_service.go +++ b/internal/mocks/ssl_service.go @@ -21,6 +21,7 @@ import ( type MockSSLCertificatesService struct { ctrl *gomock.Controller recorder *MockSSLCertificatesServiceMockRecorder + isgomock struct{} } // MockSSLCertificatesServiceMockRecorder is the mock recorder for MockSSLCertificatesService. @@ -69,6 +70,34 @@ func (mr *MockSSLCertificatesServiceMockRecorder) CreateCustom(ctx, input any) * return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateCustom", reflect.TypeOf((*MockSSLCertificatesService)(nil).CreateCustom), ctx, input) } +// DeleteCustom mocks base method. +func (m *MockSSLCertificatesService) DeleteCustom(ctx context.Context, id string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteCustom", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteCustom indicates an expected call of DeleteCustom. +func (mr *MockSSLCertificatesServiceMockRecorder) DeleteCustom(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCustom", reflect.TypeOf((*MockSSLCertificatesService)(nil).DeleteCustom), ctx, id) +} + +// DeleteLE mocks base method. +func (m *MockSSLCertificatesService) DeleteLE(ctx context.Context, id string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteLE", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteLE indicates an expected call of DeleteLE. +func (mr *MockSSLCertificatesServiceMockRecorder) DeleteLE(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteLE", reflect.TypeOf((*MockSSLCertificatesService)(nil).DeleteLE), ctx, id) +} + // GetCustom mocks base method. func (m *MockSSLCertificatesService) GetCustom(ctx context.Context, id string) (*serverscom.SSLCertificateCustom, error) { m.ctrl.T.Helper() @@ -83,3 +112,48 @@ func (mr *MockSSLCertificatesServiceMockRecorder) GetCustom(ctx, id any) *gomock mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCustom", reflect.TypeOf((*MockSSLCertificatesService)(nil).GetCustom), ctx, id) } + +// GetLE mocks base method. +func (m *MockSSLCertificatesService) GetLE(ctx context.Context, id string) (*serverscom.SSLCertificateLE, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLE", ctx, id) + ret0, _ := ret[0].(*serverscom.SSLCertificateLE) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLE indicates an expected call of GetLE. +func (mr *MockSSLCertificatesServiceMockRecorder) GetLE(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLE", reflect.TypeOf((*MockSSLCertificatesService)(nil).GetLE), ctx, id) +} + +// UpdateCustom mocks base method. +func (m *MockSSLCertificatesService) UpdateCustom(ctx context.Context, id string, input serverscom.SSLCertificateUpdateCustomInput) (*serverscom.SSLCertificateCustom, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateCustom", ctx, id, input) + ret0, _ := ret[0].(*serverscom.SSLCertificateCustom) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateCustom indicates an expected call of UpdateCustom. +func (mr *MockSSLCertificatesServiceMockRecorder) UpdateCustom(ctx, id, input any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateCustom", reflect.TypeOf((*MockSSLCertificatesService)(nil).UpdateCustom), ctx, id, input) +} + +// UpdateLE mocks base method. +func (m *MockSSLCertificatesService) UpdateLE(ctx context.Context, id string, input serverscom.SSLCertificateUpdateLEInput) (*serverscom.SSLCertificateLE, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateLE", ctx, id, input) + ret0, _ := ret[0].(*serverscom.SSLCertificateLE) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateLE indicates an expected call of UpdateLE. +func (mr *MockSSLCertificatesServiceMockRecorder) UpdateLE(ctx, id, input any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateLE", reflect.TypeOf((*MockSSLCertificatesService)(nil).UpdateLE), ctx, id, input) +} diff --git a/internal/mocks/store.go b/internal/mocks/store.go index 86f81bf..446176f 100644 --- a/internal/mocks/store.go +++ b/internal/mocks/store.go @@ -22,6 +22,7 @@ import ( type MockStorer struct { ctrl *gomock.Controller recorder *MockStorerMockRecorder + isgomock struct{} } // MockStorerMockRecorder is the mock recorder for MockStorer. diff --git a/internal/mocks/sync_manager.go b/internal/mocks/sync_manager.go index 24c3ea5..9bc2423 100644 --- a/internal/mocks/sync_manager.go +++ b/internal/mocks/sync_manager.go @@ -22,6 +22,7 @@ import ( type MockSyncer struct { ctrl *gomock.Controller recorder *MockSyncerMockRecorder + isgomock struct{} } // MockSyncerMockRecorder is the mock recorder for MockSyncer. diff --git a/internal/mocks/tls_manager.go b/internal/mocks/tls_manager.go index 402ff3f..f083f8e 100644 --- a/internal/mocks/tls_manager.go +++ b/internal/mocks/tls_manager.go @@ -20,6 +20,7 @@ import ( type MockTLSManagerInterface struct { ctrl *gomock.Controller recorder *MockTLSManagerInterfaceMockRecorder + isgomock struct{} } // MockTLSManagerInterfaceMockRecorder is the mock recorder for MockTLSManagerInterface. From 069cfc6faeeb0c55d047153d5c9b2d2ed6cd9576 Mon Sep 17 00:00:00 2001 From: Oleg Isakov Date: Thu, 30 Jan 2025 18:16:49 +0200 Subject: [PATCH 2/3] add ip header annotation --- internal/service/annotations/service.go | 24 ++++++++++++++++++++++++ internal/service/tls/manager.go | 20 +++++++++++++++++--- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/internal/service/annotations/service.go b/internal/service/annotations/service.go index abf857a..1b39e41 100644 --- a/internal/service/annotations/service.go +++ b/internal/service/annotations/service.go @@ -17,6 +17,8 @@ const ( AppHealthcheckChecksToPass = "servers.com/app-healthcheck-checks-to-pass" AppHealthcheckInterval = "servers.com/app-healthcheck-interval" AppHealthcheckJitter = "servers.com/app-healthcheck-jitter" + LBIPHeader = "servers.com/load-balancer-ip-header" + LBIPSubnets = "servers.com/load-balancer-ip-subnets" ) // FillLBVHostZoneWithServiceAnnotations prepares the LB vhost zone input based on annotations. @@ -28,6 +30,16 @@ func FillLBVHostZoneWithServiceAnnotations(vZInput *serverscom.L7VHostZoneInput, } } + // LBIPHeader & LBIPSubnets annotations + if value, ok := annotations[LBIPHeader]; ok { + vZInput.RealIPHeader = new(serverscom.RealIPHeader) + vZInput.RealIPHeader.Name = ParseRealIPHeaderName(value) + if subnets, ok := annotations[LBIPSubnets]; ok { + s := strings.Split(strings.ReplaceAll(subnets, " ", ""), ",") + vZInput.RealIPHeader.Networks = s + } + } + return vZInput } @@ -83,3 +95,15 @@ func FillLBUpstreamZoneWithServiceAnnotations(uZInput *serverscom.L7UpstreamZone return uZInput } + +// ParseRealIPHeaderName parses the Real IP Header Name from annotation +func ParseRealIPHeaderName(input string) serverscom.RealIPHeaderName { + switch input { + case string(serverscom.RealIP): + return serverscom.RealIP + case string(serverscom.ForwardedFor): + return serverscom.ForwardedFor + default: + return "" + } +} diff --git a/internal/service/tls/manager.go b/internal/service/tls/manager.go index 0928e86..696d585 100644 --- a/internal/service/tls/manager.go +++ b/internal/service/tls/manager.go @@ -103,12 +103,13 @@ func (m *Manager) SyncCertificate(fingerprint, name string, cert, key, chain []b return nil, err } - sslCertificate.state = (*serverscom.SSLCertificate)(state) + sslCert := CustomToSSLCertificate(state) + sslCertificate.state = sslCert sslCertificate.lastRefresh = time.Now() m.resources[fingerprint] = &sslCertificate - return (*serverscom.SSLCertificate)(state), nil + return sslCert, nil } // Get gets an ssl from manager @@ -136,5 +137,18 @@ func (m *Manager) GetByID(id string) (*serverscom.SSLCertificate, error) { return nil, err } - return (*serverscom.SSLCertificate)(customCert), nil + return CustomToSSLCertificate(customCert), nil +} + +// CustomToSSLCertificate converts a serverscom SSLCertificateCustom to serverscom SSLCertificate +func CustomToSSLCertificate(custom *serverscom.SSLCertificateCustom) *serverscom.SSLCertificate { + return &serverscom.SSLCertificate{ + ID: custom.ID, + Name: custom.Name, + Sha1Fingerprint: custom.Sha1Fingerprint, + Labels: custom.Labels, + Expires: custom.Expires, + Created: custom.Created, + Updated: custom.Updated, + } } From 00386f312d3f9eb77e309ed4865144f6ad2c7428 Mon Sep 17 00:00:00 2001 From: Oleg Isakov Date: Thu, 30 Jan 2025 18:16:58 +0200 Subject: [PATCH 3/3] update tests --- internal/service/annotations/service_test.go | 4 ++++ internal/service/tls/manager_test.go | 5 ++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/internal/service/annotations/service_test.go b/internal/service/annotations/service_test.go index 03b376c..b94c241 100644 --- a/internal/service/annotations/service_test.go +++ b/internal/service/annotations/service_test.go @@ -19,11 +19,15 @@ func TestFillLBVHostZoneWithServiceAnnotations(t *testing.T) { annotations = map[string]string{ AppProtocol: "http2", + LBIPHeader: "real_ip", + LBIPSubnets: "192.168.1.0/24, 10.0.0.0/8", } result = FillLBVHostZoneWithServiceAnnotations(vZInput, annotations) g.Expect(result).NotTo(BeNil()) g.Expect(result.HTTP2).To(BeTrue()) + g.Expect(result.RealIPHeader.Name).To(BeEquivalentTo(string(serverscom.RealIP))) + g.Expect(result.RealIPHeader.Networks).To(BeEquivalentTo([]string{"192.168.1.0/24", "10.0.0.0/8"})) } func TestFillLBUpstreamZoneWithServiceAnnotations(t *testing.T) { diff --git a/internal/service/tls/manager_test.go b/internal/service/tls/manager_test.go index c52e736..d52ff78 100644 --- a/internal/service/tls/manager_test.go +++ b/internal/service/tls/manager_test.go @@ -82,7 +82,6 @@ func TestSyncCertificate(t *testing.T) { g.Expect(err).To(BeNil()) g.Expect(manager.resources[existFingerprint]).NotTo(BeNil()) g.Expect(manager.resources[existFingerprint].lastRefresh).To(BeTemporally(">", startTime)) - }) t.Run("Certificate not found in list and creation successful", func(t *testing.T) { @@ -103,11 +102,11 @@ func TestSyncCertificate(t *testing.T) { result, err := manager.SyncCertificate(newFingerprint, name, cert, key, chain) - g.Expect(*result).To(BeEquivalentTo(newCert)) + expectedCert := CustomToSSLCertificate(&newCert) + g.Expect(result).To(BeEquivalentTo(expectedCert)) g.Expect(err).To(BeNil()) g.Expect(manager.resources[newFingerprint]).NotTo(BeNil()) g.Expect(manager.resources[newFingerprint].lastRefresh).To(BeTemporally(">", startTime)) - }) t.Run("Certificate not found in list and creation fails", func(t *testing.T) {