Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
1e33142f
Commit
1e33142f
authored
May 03, 2019
by
galal-hussein
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
handle old service lb deployments
parent
3c01d1ab
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
30 additions
and
13 deletions
+30
-13
controller.go
pkg/servicelb/controller.go
+30
-13
No files found.
pkg/servicelb/controller.go
View file @
1e33142f
...
...
@@ -42,15 +42,17 @@ func Register(ctx context.Context, kubernetes kubernetes.Interface, enabled, roo
appClients
:=
appclient
.
ClientsFrom
(
ctx
)
h
:=
&
handler
{
rootless
:
rootless
,
enabled
:
enabled
,
nodeCache
:
clients
.
Node
.
Cache
(),
podCache
:
clients
.
Pod
.
Cache
(),
rootless
:
rootless
,
enabled
:
enabled
,
nodeCache
:
clients
.
Node
.
Cache
(),
podCache
:
clients
.
Pod
.
Cache
(),
deploymentCache
:
appClients
.
Deployment
.
Cache
(),
processor
:
objectset
.
NewProcessor
(
"svccontroller"
)
.
Client
(
appClients
.
DaemonSet
),
serviceCache
:
clients
.
Service
.
Cache
(),
services
:
kubernetes
.
CoreV1
(),
daemonsets
:
kubernetes
.
AppsV1
(),
deployments
:
kubernetes
.
AppsV1
(),
}
clients
.
Service
.
OnChange
(
ctx
,
"svccontroller"
,
h
.
onChangeService
)
...
...
@@ -65,14 +67,16 @@ func Register(ctx context.Context, kubernetes kubernetes.Interface, enabled, roo
}
type
handler
struct
{
rootless
bool
enabled
bool
nodeCache
coreclient
.
NodeClientCache
podCache
coreclient
.
PodClientCache
processor
*
objectset
.
Processor
serviceCache
coreclient
.
ServiceClientCache
services
coregetter
.
ServicesGetter
daemonsets
v1getter
.
DaemonSetsGetter
rootless
bool
enabled
bool
nodeCache
coreclient
.
NodeClientCache
podCache
coreclient
.
PodClientCache
deploymentCache
appclient
.
DeploymentClientCache
processor
*
objectset
.
Processor
serviceCache
coreclient
.
ServiceClientCache
services
coregetter
.
ServicesGetter
daemonsets
v1getter
.
DaemonSetsGetter
deployments
v1getter
.
DeploymentsGetter
}
func
(
h
*
handler
)
onResourceChange
(
name
,
namespace
string
,
obj
runtime
.
Object
)
([]
changeset
.
Key
,
error
)
{
...
...
@@ -218,7 +222,9 @@ func (h *handler) podIPs(pods []*core.Pod) ([]string, error) {
}
func
(
h
*
handler
)
deployPod
(
svc
*
core
.
Service
)
error
{
if
err
:=
h
.
deleteOldDeployments
(
svc
);
err
!=
nil
{
return
err
}
objs
:=
objectset
.
NewObjectSet
()
if
!
h
.
enabled
{
return
h
.
processor
.
NewDesiredSet
(
svc
,
objs
)
.
Apply
()
...
...
@@ -363,3 +369,14 @@ func (h *handler) updateDaemonSets() error {
return
nil
}
func
(
h
*
handler
)
deleteOldDeployments
(
svc
*
core
.
Service
)
error
{
name
:=
fmt
.
Sprintf
(
"svclb-%s"
,
svc
.
Name
)
if
_
,
err
:=
h
.
deploymentCache
.
Get
(
svc
.
Namespace
,
name
);
err
!=
nil
{
if
errors
.
IsNotFound
(
err
)
{
return
nil
}
return
err
}
return
h
.
deployments
.
Deployments
(
svc
.
Namespace
)
.
Delete
(
name
,
&
meta
.
DeleteOptions
{})
}
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