mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-30 15:05:27 +00:00
Turn on node level validation, and make the validation set dynamic.
This commit is contained in:
parent
5523e0344a
commit
59b5546b28
@ -238,7 +238,7 @@ func (g *APIGroupVersion) InstallREST(container *restful.Container, root string,
|
||||
}
|
||||
|
||||
// TODO: Convert to go-restful
|
||||
func InstallValidator(mux Mux, servers map[string]Server) {
|
||||
func InstallValidator(mux Mux, servers func() map[string]Server) {
|
||||
validator, err := NewValidator(servers)
|
||||
if err != nil {
|
||||
glog.Errorf("failed to set up validator: %v", err)
|
||||
|
@ -41,7 +41,7 @@ type Server struct {
|
||||
// validator is responsible for validating the cluster and serving
|
||||
type validator struct {
|
||||
// a list of servers to health check
|
||||
servers map[string]Server
|
||||
servers func() map[string]Server
|
||||
client httpGet
|
||||
}
|
||||
|
||||
@ -72,7 +72,7 @@ type ServerStatus struct {
|
||||
|
||||
func (v *validator) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
reply := []ServerStatus{}
|
||||
for name, server := range v.servers {
|
||||
for name, server := range v.servers() {
|
||||
status, msg, err := server.check(v.client)
|
||||
var errorMsg string
|
||||
if err != nil {
|
||||
@ -93,7 +93,7 @@ func (v *validator) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// NewValidator creates a validator for a set of servers.
|
||||
func NewValidator(servers map[string]Server) (http.Handler, error) {
|
||||
func NewValidator(servers func() map[string]Server) (http.Handler, error) {
|
||||
return &validator{
|
||||
servers: servers,
|
||||
client: &http.Client{},
|
||||
@ -114,7 +114,7 @@ func makeTestValidator(servers map[string]string, get httpGet) (http.Handler, er
|
||||
result[name] = Server{Addr: host, Port: val, Path: "/healthz"}
|
||||
}
|
||||
|
||||
v, e := NewValidator(result)
|
||||
v, e := NewValidator(func() map[string]Server { return result })
|
||||
if e == nil {
|
||||
v.(*validator).client = get
|
||||
}
|
||||
|
@ -339,8 +339,7 @@ func (m *Master) init(c *Config) {
|
||||
apiserver.InstallSupport(m.handlerContainer, m.rootWebService)
|
||||
|
||||
// TODO: use go-restful
|
||||
serversToValidate := m.getServersToValidate(c)
|
||||
apiserver.InstallValidator(m.mux, serversToValidate)
|
||||
apiserver.InstallValidator(m.mux, func() map[string]apiserver.Server { return m.getServersToValidate(c) })
|
||||
if c.EnableLogsSupport {
|
||||
apiserver.InstallLogsSupport(m.mux)
|
||||
}
|
||||
@ -430,7 +429,7 @@ func (m *Master) getServersToValidate(c *Config) map[string]apiserver.Server {
|
||||
glog.Errorf("Failed to list minions: %v", err)
|
||||
}
|
||||
for ix, node := range nodes.Items {
|
||||
serversToValidate[fmt.Sprintf("node-%d", ix)] = apiserver.Server{Addr: node.Status.HostIP, Port: 10250, Path: "/healthz"}
|
||||
serversToValidate[fmt.Sprintf("node-%d", ix)] = apiserver.Server{Addr: node.Name, Port: 10250, Path: "/healthz"}
|
||||
}
|
||||
return serversToValidate
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user