Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
k8s-ingress
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
3
Merge Requests
3
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
uplex-varnish
k8s-ingress
Commits
449af81d
Commit
449af81d
authored
Jul 09, 2020
by
Geoff Simmons
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bugfix: sync is incomplete if Endpoints undefined for an IngressBackend.
parent
4f8b60b4
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
38 additions
and
5 deletions
+38
-5
ingress.go
pkg/controller/ingress.go
+12
-1
utils.go
pkg/controller/utils.go
+18
-4
varnish.go
pkg/varnish/varnish.go
+8
-0
No files found.
pkg/controller/ingress.go
View file @
449af81d
...
...
@@ -279,7 +279,12 @@ func (worker *NamespaceWorker) ingBackend2Addrs(
return
}
addrs
,
err
=
endpsTargetPort2Addrs
(
svc
,
endps
,
targetPort
)
addrs
,
status
=
endpsTargetPort2Addrs
(
svc
,
endps
,
targetPort
)
if
len
(
addrs
)
==
0
||
addrs
==
nil
{
status
=
update
.
MakeIncomplete
(
"Service %s/%s: no addresses found"
,
svc
.
Namespace
,
svc
.
Name
)
}
return
}
...
...
@@ -464,6 +469,12 @@ func (worker *NamespaceWorker) ings2VCLSpec(
if
status
.
IsError
()
{
return
vclSpec
,
bcfgs
,
status
}
if
extName
==
""
&&
(
addrs
==
nil
||
len
(
addrs
)
==
0
)
{
panic
(
"len(addrs)==0 namespace="
+
namespace
+
" IngressBackend="
+
path
.
Backend
.
String
())
}
vclSvc
,
bcfg
,
status
:=
worker
.
getVCLSvc
(
namespace
,
path
.
Backend
.
ServiceName
,
addrs
,
...
...
pkg/controller/utils.go
View file @
449af81d
...
...
@@ -81,12 +81,25 @@ func (worker *NamespaceWorker) getServiceEndpoints(
func
endpsTargetPort2Addrs
(
svc
*
api_v1
.
Service
,
endps
*
api_v1
.
Endpoints
,
targetPort
int32
)
([]
vcl
.
Address
,
error
)
{
targetPort
int32
)
([]
vcl
.
Address
,
update
.
Status
)
{
var
addrs
[]
vcl
.
Address
if
len
(
endps
.
Subsets
)
==
0
{
return
addrs
,
update
.
MakeIncomplete
(
"Service %s/%s: currently no endpoint subsets"
,
svc
.
Namespace
,
svc
.
Name
)
}
for
_
,
subset
:=
range
endps
.
Subsets
{
for
_
,
port
:=
range
subset
.
Ports
{
if
port
.
Port
==
targetPort
{
if
len
(
subset
.
Addresses
)
==
0
{
return
addrs
,
update
.
MakeIncomplete
(
"Service %s/%s port %d: "
+
"Endpoints subset is "
+
"currently empty"
,
svc
.
Namespace
,
svc
.
Name
,
targetPort
)
}
for
_
,
address
:=
range
subset
.
Addresses
{
addr
:=
vcl
.
Address
{
IP
:
address
.
IP
,
...
...
@@ -94,12 +107,13 @@ func endpsTargetPort2Addrs(
}
addrs
=
append
(
addrs
,
addr
)
}
return
addrs
,
nil
return
addrs
,
update
.
MakeSuccess
(
""
)
}
}
}
return
addrs
,
fmt
.
Errorf
(
"No endpoints for service port %d in service "
+
"%s/%s"
,
targetPort
,
svc
.
Namespace
,
svc
.
Name
)
return
addrs
,
update
.
MakeFatal
(
"No endpoints match service port %d in service %s/%s"
,
targetPort
,
svc
.
Namespace
,
svc
.
Name
)
}
// findPort returns the container port number for a Pod and
...
...
pkg/varnish/varnish.go
View file @
449af81d
...
...
@@ -680,6 +680,14 @@ func (vc *Controller) Update(
bcfgMeta
map
[
string
]
Meta
,
)
update
.
Status
{
var
secrPtr
*
[]
byte
for
key
,
svc
:=
range
spec
.
IntSvcs
{
if
svc
.
Addresses
==
nil
||
len
(
svc
.
Addresses
)
==
0
{
return
update
.
MakeIncomplete
(
"Backend service %s: no addresses specified"
,
key
)
}
}
svc
,
exists
:=
vc
.
svcs
[
svcKey
]
if
!
exists
{
svc
=
&
varnishSvc
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment