mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 03:41:45 +00:00
pkg/apiserver: move validation.go into pkg/registry
This commit is contained in:
parent
3be6b3c045
commit
aa81e1d51d
@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2014 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@ -45,6 +45,7 @@ func validateServiceNodePort(options *ServerRunOptions) []error {
|
||||
return errors
|
||||
}
|
||||
|
||||
// Validate checks ServerRunOptions and return a slice of found errors.
|
||||
func (options *ServerRunOptions) Validate() []error {
|
||||
var errors []error
|
||||
if errs := options.Etcd.Validate(); len(errs) > 0 {
|
||||
|
@ -23,19 +23,18 @@ import (
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
"k8s.io/kubernetes/pkg/apiserver"
|
||||
"k8s.io/kubernetes/pkg/probe"
|
||||
httpprober "k8s.io/kubernetes/pkg/probe/http"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
)
|
||||
|
||||
type REST struct {
|
||||
GetServersToValidate func() map[string]apiserver.Server
|
||||
GetServersToValidate func() map[string]Server
|
||||
prober httpprober.HTTPProber
|
||||
}
|
||||
|
||||
// NewStorage returns a new REST.
|
||||
func NewStorage(serverRetriever func() map[string]apiserver.Server) *REST {
|
||||
func NewStorage(serverRetriever func() map[string]Server) *REST {
|
||||
return &REST{
|
||||
GetServersToValidate: serverRetriever,
|
||||
prober: httpprober.New(),
|
||||
@ -59,7 +58,7 @@ func (rs *REST) List(ctx api.Context, options *api.ListOptions) (runtime.Object,
|
||||
wait.Add(len(servers))
|
||||
statuses := make(chan api.ComponentStatus, len(servers))
|
||||
for k, v := range servers {
|
||||
go func(name string, server apiserver.Server) {
|
||||
go func(name string, server Server) {
|
||||
defer wait.Done()
|
||||
status := rs.getComponentStatus(name, server)
|
||||
statuses <- *status
|
||||
@ -96,7 +95,7 @@ func ToConditionStatus(s probe.Result) api.ConditionStatus {
|
||||
}
|
||||
}
|
||||
|
||||
func (rs *REST) getComponentStatus(name string, server apiserver.Server) *api.ComponentStatus {
|
||||
func (rs *REST) getComponentStatus(name string, server Server) *api.ComponentStatus {
|
||||
status, msg, err := server.DoServerCheck(rs.prober)
|
||||
errorMsg := ""
|
||||
if err != nil {
|
||||
|
@ -28,7 +28,6 @@ import (
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
"k8s.io/kubernetes/pkg/apiserver"
|
||||
"k8s.io/kubernetes/pkg/probe"
|
||||
"k8s.io/kubernetes/pkg/util/diff"
|
||||
)
|
||||
@ -51,8 +50,8 @@ type testResponse struct {
|
||||
|
||||
func NewTestREST(resp testResponse) *REST {
|
||||
return &REST{
|
||||
GetServersToValidate: func() map[string]apiserver.Server {
|
||||
return map[string]apiserver.Server{
|
||||
GetServersToValidate: func() map[string]Server {
|
||||
return map[string]Server{
|
||||
"test1": {Addr: "testserver1", Port: 8000, Path: "/healthz"},
|
||||
}
|
||||
},
|
||||
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package apiserver
|
||||
package componentstatus
|
||||
|
||||
import (
|
||||
"net/http"
|
@ -14,32 +14,16 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package apiserver
|
||||
package componentstatus
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"net/http"
|
||||
"net/url"
|
||||
"time"
|
||||
|
||||
"k8s.io/kubernetes/pkg/probe"
|
||||
)
|
||||
|
||||
type fakeHttpProber struct {
|
||||
result probe.Result
|
||||
body string
|
||||
err error
|
||||
}
|
||||
|
||||
func (f *fakeHttpProber) Probe(*url.URL, http.Header, time.Duration) (probe.Result, string, error) {
|
||||
return f.result, f.body, f.err
|
||||
}
|
||||
|
||||
func alwaysError([]byte) error { return errors.New("test error") }
|
||||
|
||||
func matchError(data []byte) error {
|
||||
if string(data) != "bar" {
|
||||
return errors.New("match error")
|
@ -30,7 +30,6 @@ import (
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/rest"
|
||||
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
||||
"k8s.io/kubernetes/pkg/apiserver"
|
||||
policyclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion"
|
||||
"k8s.io/kubernetes/pkg/client/restclient"
|
||||
"k8s.io/kubernetes/pkg/genericapiserver"
|
||||
@ -243,8 +242,8 @@ type componentStatusStorage struct {
|
||||
storageFactory genericapiserver.StorageFactory
|
||||
}
|
||||
|
||||
func (s componentStatusStorage) serversToValidate() map[string]apiserver.Server {
|
||||
serversToValidate := map[string]apiserver.Server{
|
||||
func (s componentStatusStorage) serversToValidate() map[string]componentstatus.Server {
|
||||
serversToValidate := map[string]componentstatus.Server{
|
||||
"controller-manager": {Addr: "127.0.0.1", Port: ports.ControllerManagerPort, Path: "/healthz"},
|
||||
"scheduler": {Addr: "127.0.0.1", Port: ports.SchedulerPort, Path: "/healthz"},
|
||||
}
|
||||
@ -270,7 +269,7 @@ func (s componentStatusStorage) serversToValidate() map[string]apiserver.Server
|
||||
port = 2379
|
||||
}
|
||||
// TODO: etcd health checking should be abstracted in the storage tier
|
||||
serversToValidate[fmt.Sprintf("etcd-%d", ix)] = apiserver.Server{
|
||||
serversToValidate[fmt.Sprintf("etcd-%d", ix)] = componentstatus.Server{
|
||||
Addr: addr,
|
||||
EnableHTTPS: etcdUrl.Scheme == "https",
|
||||
Port: port,
|
||||
|
Loading…
Reference in New Issue
Block a user