Skip to content

Commit

Permalink
Add kube-proxy config file support
Browse files Browse the repository at this point in the history
Add support for configuring kube-proxy via a config file instead of
command line flags.
  • Loading branch information
ncdc committed May 1, 2017
1 parent 07424af commit 43cb024
Show file tree
Hide file tree
Showing 21 changed files with 834 additions and 552 deletions.
1 change: 0 additions & 1 deletion cmd/hyperkube/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ go_library(
"//cmd/kube-controller-manager/app:go_default_library",
"//cmd/kube-controller-manager/app/options:go_default_library",
"//cmd/kube-proxy/app:go_default_library",
"//cmd/kube-proxy/app/options:go_default_library",
"//cmd/kubelet/app:go_default_library",
"//cmd/kubelet/app/options:go_default_library",
"//federation/cmd/federation-apiserver/app:go_default_library",
Expand Down
32 changes: 15 additions & 17 deletions cmd/hyperkube/kube-proxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,39 +17,37 @@ limitations under the License.
package main

import (
"flag"

"k8s.io/apiserver/pkg/server/healthz"
"k8s.io/kubernetes/cmd/kube-proxy/app"
"k8s.io/kubernetes/cmd/kube-proxy/app/options"
)

func init() {
healthz.DefaultHealthz()
}

// NewKubeProxy creates a new hyperkube Server object that includes the
// description and flags.
func NewKubeProxy() *Server {
config := options.NewProxyConfig()
healthz.DefaultHealthz()

command := app.NewProxyCommand()

hks := Server{
name: "proxy",
AlternativeName: "kube-proxy",
SimpleUsage: "proxy",
Long: `The Kubernetes proxy server is responsible for taking traffic directed at
services and forwarding it to the appropriate pods. It generally runs on
nodes next to the Kubelet and proxies traffic from local pods to remote pods.
It is also used when handling incoming external traffic.`,
Long: command.Long,
}

config.AddFlags(hks.Flags())
serverFlags := hks.Flags()
serverFlags.AddFlagSet(command.Flags())

hks.Run = func(_ *Server, _ []string) error {
s, err := app.NewProxyServerDefault(config)
if err != nil {
return err
}
// FIXME this is here because hyperkube does its own flag parsing, and we need
// the command to know about the go flag set. Remove this once hyperkube is
// refactored to use cobra throughout.
command.Flags().AddGoFlagSet(flag.CommandLine)

return s.Run()
hks.Run = func(_ *Server, args []string) error {
command.SetArgs(args)
return command.Execute()
}

return &hks
Expand Down
1 change: 0 additions & 1 deletion cmd/kube-proxy/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ go_library(
tags = ["automanaged"],
deps = [
"//cmd/kube-proxy/app:go_default_library",
"//cmd/kube-proxy/app/options:go_default_library",
"//pkg/client/metrics/prometheus:go_default_library",
"//pkg/version/prometheus:go_default_library",
"//pkg/version/verflag:go_default_library",
Expand Down
14 changes: 8 additions & 6 deletions cmd/kube-proxy/app/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,13 @@ go_library(
],
tags = ["automanaged"],
deps = [
"//cmd/kube-proxy/app/options:go_default_library",
"//pkg/api:go_default_library",
"//pkg/apis/componentconfig:go_default_library",
"//pkg/apis/componentconfig/v1alpha1:go_default_library",
"//pkg/client/clientset_generated/internalclientset:go_default_library",
"//pkg/client/informers/informers_generated/internalversion:go_default_library",
"//pkg/kubectl/cmd/util:go_default_library",
"//pkg/kubelet/qos:go_default_library",
"//pkg/proxy:go_default_library",
"//pkg/proxy/config:go_default_library",
"//pkg/proxy/iptables:go_default_library",
Expand All @@ -42,10 +45,13 @@ go_library(
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library",
"//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library",
"//vendor/k8s.io/client-go/kubernetes:go_default_library",
"//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library",
"//vendor/k8s.io/client-go/pkg/api/v1:go_default_library",
"//vendor/k8s.io/client-go/pkg/util:go_default_library",
"//vendor/k8s.io/client-go/tools/clientcmd:go_default_library",
"//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library",
"//vendor/k8s.io/client-go/tools/record:go_default_library",
Expand All @@ -58,7 +64,6 @@ go_test(
library = ":go_default_library",
tags = ["automanaged"],
deps = [
"//cmd/kube-proxy/app/options:go_default_library",
"//pkg/api:go_default_library",
"//pkg/apis/componentconfig:go_default_library",
"//pkg/util/iptables:go_default_library",
Expand All @@ -76,9 +81,6 @@ filegroup(

filegroup(
name = "all-srcs",
srcs = [
":package-srcs",
"//cmd/kube-proxy/app/options:all-srcs",
],
srcs = [":package-srcs"],
tags = ["automanaged"],
)
38 changes: 0 additions & 38 deletions cmd/kube-proxy/app/options/BUILD

This file was deleted.

105 changes: 0 additions & 105 deletions cmd/kube-proxy/app/options/options.go

This file was deleted.

Loading

0 comments on commit 43cb024

Please sign in to comment.