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
932060ca
Commit
932060ca
authored
Apr 24, 2019
by
JieJhih Jhang
Committed by
Vallery Lancey
Apr 30, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
os exit when option is true
parent
c72a5b2c
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
33 additions
and
14 deletions
+33
-14
server.go
cmd/kube-proxy/app/server.go
+19
-11
server_others.go
cmd/kube-proxy/app/server_others.go
+0
-1
server_test.go
cmd/kube-proxy/app/server_test.go
+11
-1
server_windows.go
cmd/kube-proxy/app/server_windows.go
+3
-1
No files found.
cmd/kube-proxy/app/server.go
View file @
932060ca
...
...
@@ -92,6 +92,7 @@ const (
// proxyRun defines the interface to run a specified ProxyServer
type
proxyRun
interface
{
Run
()
error
CleanupAndExit
()
error
}
// Options contains everything necessary to create and run a proxy server.
...
...
@@ -306,6 +307,11 @@ func (o *Options) Run() error {
if
err
!=
nil
{
return
err
}
if
o
.
CleanupAndExit
{
return
proxyServer
.
CleanupAndExit
()
}
o
.
proxyServer
=
proxyServer
return
o
.
runLoop
()
}
...
...
@@ -499,7 +505,6 @@ type ProxyServer struct {
Conntracker
Conntracker
// if nil, ignored
ProxyMode
string
NodeRef
*
v1
.
ObjectReference
CleanupAndExit
bool
CleanupIPVS
bool
MetricsBindAddress
string
EnableProfiling
bool
...
...
@@ -551,19 +556,10 @@ func createClients(config componentbaseconfig.ClientConnectionConfiguration, mas
}
// Run runs the specified ProxyServer. This should never exit (unless CleanupAndExit is set).
// TODO: At the moment, Run() cannot return a nil error, otherwise it's caller will never exit. Update callers of Run to handle nil errors.
func
(
s
*
ProxyServer
)
Run
()
error
{
// To help debugging, immediately log version
klog
.
Infof
(
"Version: %+v"
,
version
.
Get
())
// remove iptables rules and exit
if
s
.
CleanupAndExit
{
encounteredError
:=
userspace
.
CleanupLeftovers
(
s
.
IptInterface
)
encounteredError
=
iptables
.
CleanupLeftovers
(
s
.
IptInterface
)
||
encounteredError
encounteredError
=
ipvs
.
CleanupLeftovers
(
s
.
IpvsInterface
,
s
.
IptInterface
,
s
.
IpsetInterface
,
s
.
CleanupIPVS
)
||
encounteredError
if
encounteredError
{
return
errors
.
New
(
"encountered an error while tearing down rules."
)
}
return
nil
}
// TODO(vmarmol): Use container config for this.
var
oomAdjuster
*
oom
.
OOMAdjuster
...
...
@@ -709,3 +705,15 @@ func getConntrackMax(config kubeproxyconfig.KubeProxyConntrackConfiguration) (in
}
return
0
,
nil
}
// CleanupAndExit remove iptables rules and exit if success return nil
func
(
s
*
ProxyServer
)
CleanupAndExit
()
error
{
encounteredError
:=
userspace
.
CleanupLeftovers
(
s
.
IptInterface
)
encounteredError
=
iptables
.
CleanupLeftovers
(
s
.
IptInterface
)
||
encounteredError
encounteredError
=
ipvs
.
CleanupLeftovers
(
s
.
IpvsInterface
,
s
.
IptInterface
,
s
.
IpsetInterface
,
s
.
CleanupIPVS
)
||
encounteredError
if
encounteredError
{
return
errors
.
New
(
"encountered an error while tearing down rules"
)
}
return
nil
}
cmd/kube-proxy/app/server_others.go
View file @
932060ca
...
...
@@ -103,7 +103,6 @@ func newProxyServer(
IptInterface
:
iptInterface
,
IpvsInterface
:
ipvsInterface
,
IpsetInterface
:
ipsetInterface
,
CleanupAndExit
:
cleanupAndExit
,
},
nil
}
...
...
cmd/kube-proxy/app/server_test.go
View file @
932060ca
...
...
@@ -17,6 +17,7 @@ limitations under the License.
package
app
import
(
"errors"
"fmt"
"io/ioutil"
"os"
...
...
@@ -108,7 +109,6 @@ func TestProxyServerWithCleanupAndExit(t *testing.T) {
assert
.
Nil
(
t
,
err
,
"unexpected error in NewProxyServer, addr: %s"
,
addr
)
assert
.
NotNil
(
t
,
proxyserver
,
"nil proxy server obj, addr: %s"
,
addr
)
assert
.
NotNil
(
t
,
proxyserver
.
IptInterface
,
"nil iptables intf, addr: %s"
,
addr
)
assert
.
True
(
t
,
proxyserver
.
CleanupAndExit
,
"false CleanupAndExit, addr: %s"
,
addr
)
// Clean up config for next test case
configz
.
Delete
(
kubeproxyconfig
.
GroupName
)
...
...
@@ -540,6 +540,11 @@ func (s *fakeProxyServerLongRun) Run() error {
}
}
// CleanupAndExit runs in the specified ProxyServer.
func
(
s
*
fakeProxyServerLongRun
)
CleanupAndExit
()
error
{
return
nil
}
type
fakeProxyServerError
struct
{}
// Run runs the specified ProxyServer.
...
...
@@ -549,3 +554,8 @@ func (s *fakeProxyServerError) Run() error {
return
fmt
.
Errorf
(
"mocking error from ProxyServer.Run()"
)
}
}
// CleanupAndExit runs in the specified ProxyServer.
func
(
s
*
fakeProxyServerError
)
CleanupAndExit
()
error
{
return
errors
.
New
(
"mocking error from ProxyServer.CleanupAndExit()"
)
}
cmd/kube-proxy/app/server_windows.go
View file @
932060ca
...
...
@@ -24,6 +24,8 @@ import (
"errors"
"fmt"
"net"
// Enable pprof HTTP handlers.
_
"net/http/pprof"
"k8s.io/api/core/v1"
...
...
@@ -63,7 +65,7 @@ func newProxyServer(config *proxyconfigapi.KubeProxyConfiguration, cleanupAndExi
// We omit creation of pretty much everything if we run in cleanup mode
if
cleanupAndExit
{
return
&
ProxyServer
{
CleanupAndExit
:
cleanupAndExit
},
nil
return
&
ProxyServer
{},
nil
}
client
,
eventClient
,
err
:=
createClients
(
config
.
ClientConnection
,
master
)
...
...
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