mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-30 15:05:27 +00:00
Merge pull request #95044 from spiffxp/add-controlplane-type-alias
Rename controlplane.Master struct to Instance
This commit is contained in:
commit
1f0d71cd0d
@ -225,7 +225,7 @@ func CreateServerChain(completedOptions completedServerRunOptions, stopCh <-chan
|
|||||||
}
|
}
|
||||||
|
|
||||||
// CreateKubeAPIServer creates and wires a workable kube-apiserver
|
// CreateKubeAPIServer creates and wires a workable kube-apiserver
|
||||||
func CreateKubeAPIServer(kubeAPIServerConfig *controlplane.Config, delegateAPIServer genericapiserver.DelegationTarget) (*controlplane.Master, error) {
|
func CreateKubeAPIServer(kubeAPIServerConfig *controlplane.Config, delegateAPIServer genericapiserver.DelegationTarget) (*controlplane.Instance, error) {
|
||||||
kubeAPIServer, err := kubeAPIServerConfig.Complete().New(delegateAPIServer)
|
kubeAPIServer, err := kubeAPIServerConfig.Complete().New(delegateAPIServer)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -223,8 +223,8 @@ type EndpointReconcilerConfig struct {
|
|||||||
Interval time.Duration
|
Interval time.Duration
|
||||||
}
|
}
|
||||||
|
|
||||||
// Master contains state for a Kubernetes cluster master/api server.
|
// Instance contains state for a Kubernetes cluster api server instance.
|
||||||
type Master struct {
|
type Instance struct {
|
||||||
GenericAPIServer *genericapiserver.GenericAPIServer
|
GenericAPIServer *genericapiserver.GenericAPIServer
|
||||||
|
|
||||||
ClusterAuthenticationInfo clusterauthenticationtrust.ClusterAuthenticationInfo
|
ClusterAuthenticationInfo clusterauthenticationtrust.ClusterAuthenticationInfo
|
||||||
@ -334,7 +334,7 @@ func (c *Config) Complete() CompletedConfig {
|
|||||||
// Certain config fields will be set to a default value if unset.
|
// Certain config fields will be set to a default value if unset.
|
||||||
// Certain config fields must be specified, including:
|
// Certain config fields must be specified, including:
|
||||||
// KubeletClientConfig
|
// KubeletClientConfig
|
||||||
func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget) (*Master, error) {
|
func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget) (*Instance, error) {
|
||||||
if reflect.DeepEqual(c.ExtraConfig.KubeletClientConfig, kubeletclient.KubeletClientConfig{}) {
|
if reflect.DeepEqual(c.ExtraConfig.KubeletClientConfig, kubeletclient.KubeletClientConfig{}) {
|
||||||
return nil, fmt.Errorf("Master.New() called with empty config.KubeletClientConfig")
|
return nil, fmt.Errorf("Master.New() called with empty config.KubeletClientConfig")
|
||||||
}
|
}
|
||||||
@ -381,7 +381,7 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m := &Master{
|
m := &Instance{
|
||||||
GenericAPIServer: s,
|
GenericAPIServer: s,
|
||||||
ClusterAuthenticationInfo: c.ExtraConfig.ClusterAuthenticationInfo,
|
ClusterAuthenticationInfo: c.ExtraConfig.ClusterAuthenticationInfo,
|
||||||
}
|
}
|
||||||
@ -486,7 +486,7 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// InstallLegacyAPI will install the legacy APIs for the restStorageProviders if they are enabled.
|
// InstallLegacyAPI will install the legacy APIs for the restStorageProviders if they are enabled.
|
||||||
func (m *Master) InstallLegacyAPI(c *completedConfig, restOptionsGetter generic.RESTOptionsGetter, legacyRESTStorageProvider corerest.LegacyRESTStorageProvider) error {
|
func (m *Instance) InstallLegacyAPI(c *completedConfig, restOptionsGetter generic.RESTOptionsGetter, legacyRESTStorageProvider corerest.LegacyRESTStorageProvider) error {
|
||||||
legacyRESTStorage, apiGroupInfo, err := legacyRESTStorageProvider.NewLegacyRESTStorage(restOptionsGetter)
|
legacyRESTStorage, apiGroupInfo, err := legacyRESTStorageProvider.NewLegacyRESTStorage(restOptionsGetter)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error building core storage: %v", err)
|
return fmt.Errorf("error building core storage: %v", err)
|
||||||
@ -504,7 +504,7 @@ func (m *Master) InstallLegacyAPI(c *completedConfig, restOptionsGetter generic.
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Master) installTunneler(nodeTunneler tunneler.Tunneler, nodeClient corev1client.NodeInterface) {
|
func (m *Instance) installTunneler(nodeTunneler tunneler.Tunneler, nodeClient corev1client.NodeInterface) {
|
||||||
nodeTunneler.Run(nodeAddressProvider{nodeClient}.externalAddresses)
|
nodeTunneler.Run(nodeAddressProvider{nodeClient}.externalAddresses)
|
||||||
err := m.GenericAPIServer.AddHealthChecks(healthz.NamedCheck("SSH Tunnel Check", tunneler.TunnelSyncHealthChecker(nodeTunneler)))
|
err := m.GenericAPIServer.AddHealthChecks(healthz.NamedCheck("SSH Tunnel Check", tunneler.TunnelSyncHealthChecker(nodeTunneler)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -519,7 +519,7 @@ type RESTStorageProvider interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// InstallAPIs will install the APIs for the restStorageProviders if they are enabled.
|
// InstallAPIs will install the APIs for the restStorageProviders if they are enabled.
|
||||||
func (m *Master) InstallAPIs(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter, restStorageProviders ...RESTStorageProvider) error {
|
func (m *Instance) InstallAPIs(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter, restStorageProviders ...RESTStorageProvider) error {
|
||||||
apiGroupsInfo := []*genericapiserver.APIGroupInfo{}
|
apiGroupsInfo := []*genericapiserver.APIGroupInfo{}
|
||||||
|
|
||||||
for _, restStorageBuilder := range restStorageProviders {
|
for _, restStorageBuilder := range restStorageProviders {
|
||||||
|
@ -76,7 +76,7 @@ func setUp(t *testing.T) (*etcd3testing.EtcdTestServer, Config, *assert.Assertio
|
|||||||
}
|
}
|
||||||
|
|
||||||
resourceEncoding := serverstorage.NewDefaultResourceEncodingConfig(legacyscheme.Scheme)
|
resourceEncoding := serverstorage.NewDefaultResourceEncodingConfig(legacyscheme.Scheme)
|
||||||
// This configures the testing master the same way the real master is
|
// This configures the testing apiserver the same way the real apiserver is
|
||||||
// configured. The storage versions of these resources are different
|
// configured. The storage versions of these resources are different
|
||||||
// from the storage versions of other resources in their group.
|
// from the storage versions of other resources in their group.
|
||||||
resourceEncodingOverrides := []schema.GroupVersionResource{
|
resourceEncodingOverrides := []schema.GroupVersionResource{
|
||||||
@ -141,20 +141,20 @@ func (fakeLocalhost443Listener) Addr() net.Addr {
|
|||||||
// their various strategies properly wired up. This surfaced as a bug where strategies defined Export functions, but
|
// their various strategies properly wired up. This surfaced as a bug where strategies defined Export functions, but
|
||||||
// they were never used outside of unit tests because the export strategies were not assigned inside the Store.
|
// they were never used outside of unit tests because the export strategies were not assigned inside the Store.
|
||||||
func TestLegacyRestStorageStrategies(t *testing.T) {
|
func TestLegacyRestStorageStrategies(t *testing.T) {
|
||||||
_, etcdserver, masterCfg, _ := newMaster(t)
|
_, etcdserver, apiserverCfg, _ := newInstance(t)
|
||||||
defer etcdserver.Terminate(t)
|
defer etcdserver.Terminate(t)
|
||||||
|
|
||||||
storageProvider := corerest.LegacyRESTStorageProvider{
|
storageProvider := corerest.LegacyRESTStorageProvider{
|
||||||
StorageFactory: masterCfg.ExtraConfig.StorageFactory,
|
StorageFactory: apiserverCfg.ExtraConfig.StorageFactory,
|
||||||
ProxyTransport: masterCfg.ExtraConfig.ProxyTransport,
|
ProxyTransport: apiserverCfg.ExtraConfig.ProxyTransport,
|
||||||
KubeletClientConfig: masterCfg.ExtraConfig.KubeletClientConfig,
|
KubeletClientConfig: apiserverCfg.ExtraConfig.KubeletClientConfig,
|
||||||
EventTTL: masterCfg.ExtraConfig.EventTTL,
|
EventTTL: apiserverCfg.ExtraConfig.EventTTL,
|
||||||
ServiceIPRange: masterCfg.ExtraConfig.ServiceIPRange,
|
ServiceIPRange: apiserverCfg.ExtraConfig.ServiceIPRange,
|
||||||
ServiceNodePortRange: masterCfg.ExtraConfig.ServiceNodePortRange,
|
ServiceNodePortRange: apiserverCfg.ExtraConfig.ServiceNodePortRange,
|
||||||
LoopbackClientConfig: masterCfg.GenericConfig.LoopbackClientConfig,
|
LoopbackClientConfig: apiserverCfg.GenericConfig.LoopbackClientConfig,
|
||||||
}
|
}
|
||||||
|
|
||||||
_, apiGroupInfo, err := storageProvider.NewLegacyRESTStorage(masterCfg.GenericConfig.RESTOptionsGetter)
|
_, apiGroupInfo, err := storageProvider.NewLegacyRESTStorage(apiserverCfg.GenericConfig.RESTOptionsGetter)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("failed to create legacy REST storage: %v", err)
|
t.Errorf("failed to create legacy REST storage: %v", err)
|
||||||
}
|
}
|
||||||
@ -177,11 +177,11 @@ func TestLegacyRestStorageStrategies(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestCertificatesRestStorageStrategies(t *testing.T) {
|
func TestCertificatesRestStorageStrategies(t *testing.T) {
|
||||||
_, etcdserver, masterCfg, _ := newMaster(t)
|
_, etcdserver, apiserverCfg, _ := newInstance(t)
|
||||||
defer etcdserver.Terminate(t)
|
defer etcdserver.Terminate(t)
|
||||||
|
|
||||||
certStorageProvider := certificatesrest.RESTStorageProvider{}
|
certStorageProvider := certificatesrest.RESTStorageProvider{}
|
||||||
apiGroupInfo, _, err := certStorageProvider.NewRESTStorage(masterCfg.ExtraConfig.APIResourceConfigSource, masterCfg.GenericConfig.RESTOptionsGetter)
|
apiGroupInfo, _, err := certStorageProvider.NewRESTStorage(apiserverCfg.ExtraConfig.APIResourceConfigSource, apiserverCfg.GenericConfig.RESTOptionsGetter)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error from REST storage: %v", err)
|
t.Fatalf("unexpected error from REST storage: %v", err)
|
||||||
}
|
}
|
||||||
@ -199,20 +199,20 @@ func TestCertificatesRestStorageStrategies(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func newMaster(t *testing.T) (*Master, *etcd3testing.EtcdTestServer, Config, *assert.Assertions) {
|
func newInstance(t *testing.T) (*Instance, *etcd3testing.EtcdTestServer, Config, *assert.Assertions) {
|
||||||
etcdserver, config, assert := setUp(t)
|
etcdserver, config, assert := setUp(t)
|
||||||
|
|
||||||
master, err := config.Complete().New(genericapiserver.NewEmptyDelegate())
|
apiserver, err := config.Complete().New(genericapiserver.NewEmptyDelegate())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Error in bringing up the master: %v", err)
|
t.Fatalf("Error in bringing up the master: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return master, etcdserver, config, assert
|
return apiserver, etcdserver, config, assert
|
||||||
}
|
}
|
||||||
|
|
||||||
// TestVersion tests /version
|
// TestVersion tests /version
|
||||||
func TestVersion(t *testing.T) {
|
func TestVersion(t *testing.T) {
|
||||||
s, etcdserver, _, _ := newMaster(t)
|
s, etcdserver, _, _ := newInstance(t)
|
||||||
defer etcdserver.Terminate(t)
|
defer etcdserver.Terminate(t)
|
||||||
|
|
||||||
req, _ := http.NewRequest("GET", "/version", nil)
|
req, _ := http.NewRequest("GET", "/version", nil)
|
||||||
@ -301,10 +301,10 @@ func decodeResponse(resp *http.Response, obj interface{}) error {
|
|||||||
// Because we need to be backwards compatible with release 1.1, at endpoints
|
// Because we need to be backwards compatible with release 1.1, at endpoints
|
||||||
// that exist in release 1.1, the responses should have empty APIVersion.
|
// that exist in release 1.1, the responses should have empty APIVersion.
|
||||||
func TestAPIVersionOfDiscoveryEndpoints(t *testing.T) {
|
func TestAPIVersionOfDiscoveryEndpoints(t *testing.T) {
|
||||||
master, etcdserver, _, assert := newMaster(t)
|
apiserver, etcdserver, _, assert := newInstance(t)
|
||||||
defer etcdserver.Terminate(t)
|
defer etcdserver.Terminate(t)
|
||||||
|
|
||||||
server := httptest.NewServer(master.GenericAPIServer.Handler.GoRestfulContainer.ServeMux)
|
server := httptest.NewServer(apiserver.GenericAPIServer.Handler.GoRestfulContainer.ServeMux)
|
||||||
|
|
||||||
// /api exists in release-1.1
|
// /api exists in release-1.1
|
||||||
resp, err := http.Get(server.URL + "/api")
|
resp, err := http.Get(server.URL + "/api")
|
||||||
@ -376,10 +376,10 @@ func TestAPIVersionOfDiscoveryEndpoints(t *testing.T) {
|
|||||||
|
|
||||||
// This test doesn't cover the apiregistration and apiextensions group, as they are installed by other apiservers.
|
// This test doesn't cover the apiregistration and apiextensions group, as they are installed by other apiservers.
|
||||||
func TestStorageVersionHashes(t *testing.T) {
|
func TestStorageVersionHashes(t *testing.T) {
|
||||||
master, etcdserver, _, _ := newMaster(t)
|
apiserver, etcdserver, _, _ := newInstance(t)
|
||||||
defer etcdserver.Terminate(t)
|
defer etcdserver.Terminate(t)
|
||||||
|
|
||||||
server := httptest.NewServer(master.GenericAPIServer.Handler.GoRestfulContainer.ServeMux)
|
server := httptest.NewServer(apiserver.GenericAPIServer.Handler.GoRestfulContainer.ServeMux)
|
||||||
|
|
||||||
c := &restclient.Config{
|
c := &restclient.Config{
|
||||||
Host: server.URL,
|
Host: server.URL,
|
||||||
@ -420,10 +420,10 @@ func TestStorageVersionHashes(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestStorageVersionHashEqualities(t *testing.T) {
|
func TestStorageVersionHashEqualities(t *testing.T) {
|
||||||
master, etcdserver, _, assert := newMaster(t)
|
apiserver, etcdserver, _, assert := newInstance(t)
|
||||||
defer etcdserver.Terminate(t)
|
defer etcdserver.Terminate(t)
|
||||||
|
|
||||||
server := httptest.NewServer(master.GenericAPIServer.Handler.GoRestfulContainer.ServeMux)
|
server := httptest.NewServer(apiserver.GenericAPIServer.Handler.GoRestfulContainer.ServeMux)
|
||||||
|
|
||||||
// Test 1: extensions/v1beta1/ingresses and apps/v1/ingresses have
|
// Test 1: extensions/v1beta1/ingresses and apps/v1/ingresses have
|
||||||
// the same storage version hash.
|
// the same storage version hash.
|
||||||
|
@ -89,17 +89,17 @@ func alwaysEmpty(req *http.Request) (*authauthenticator.Response, bool, error) {
|
|||||||
|
|
||||||
// MasterReceiver can be used to provide the master to a custom incoming server function
|
// MasterReceiver can be used to provide the master to a custom incoming server function
|
||||||
type MasterReceiver interface {
|
type MasterReceiver interface {
|
||||||
SetMaster(m *controlplane.Master)
|
SetMaster(m *controlplane.Instance)
|
||||||
}
|
}
|
||||||
|
|
||||||
// MasterHolder implements
|
// MasterHolder implements
|
||||||
type MasterHolder struct {
|
type MasterHolder struct {
|
||||||
Initialized chan struct{}
|
Initialized chan struct{}
|
||||||
M *controlplane.Master
|
M *controlplane.Instance
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetMaster assigns the current master.
|
// SetMaster assigns the current master.
|
||||||
func (h *MasterHolder) SetMaster(m *controlplane.Master) {
|
func (h *MasterHolder) SetMaster(m *controlplane.Instance) {
|
||||||
h.M = m
|
h.M = m
|
||||||
close(h.Initialized)
|
close(h.Initialized)
|
||||||
}
|
}
|
||||||
@ -124,8 +124,8 @@ func DefaultOpenAPIConfig() *openapicommon.Config {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// startMasterOrDie starts a kubernetes master and an httpserver to handle api requests
|
// startMasterOrDie starts a kubernetes master and an httpserver to handle api requests
|
||||||
func startMasterOrDie(masterConfig *controlplane.Config, incomingServer *httptest.Server, masterReceiver MasterReceiver) (*controlplane.Master, *httptest.Server, CloseFunc) {
|
func startMasterOrDie(masterConfig *controlplane.Config, incomingServer *httptest.Server, masterReceiver MasterReceiver) (*controlplane.Instance, *httptest.Server, CloseFunc) {
|
||||||
var m *controlplane.Master
|
var m *controlplane.Instance
|
||||||
var s *httptest.Server
|
var s *httptest.Server
|
||||||
|
|
||||||
// Ensure we log at least level 4
|
// Ensure we log at least level 4
|
||||||
@ -333,7 +333,7 @@ func NewMasterConfigWithOptions(opts *MasterConfigOptions) *controlplane.Config
|
|||||||
type CloseFunc func()
|
type CloseFunc func()
|
||||||
|
|
||||||
// RunAMaster starts a master with the provided config.
|
// RunAMaster starts a master with the provided config.
|
||||||
func RunAMaster(masterConfig *controlplane.Config) (*controlplane.Master, *httptest.Server, CloseFunc) {
|
func RunAMaster(masterConfig *controlplane.Config) (*controlplane.Instance, *httptest.Server, CloseFunc) {
|
||||||
if masterConfig == nil {
|
if masterConfig == nil {
|
||||||
masterConfig = NewMasterConfig()
|
masterConfig = NewMasterConfig()
|
||||||
masterConfig.GenericConfig.EnableProfiling = true
|
masterConfig.GenericConfig.EnableProfiling = true
|
||||||
@ -342,7 +342,7 @@ func RunAMaster(masterConfig *controlplane.Config) (*controlplane.Master, *httpt
|
|||||||
}
|
}
|
||||||
|
|
||||||
// RunAMasterUsingServer starts up a master using the provided config on the specified server.
|
// RunAMasterUsingServer starts up a master using the provided config on the specified server.
|
||||||
func RunAMasterUsingServer(masterConfig *controlplane.Config, s *httptest.Server, masterReceiver MasterReceiver) (*controlplane.Master, *httptest.Server, CloseFunc) {
|
func RunAMasterUsingServer(masterConfig *controlplane.Config, s *httptest.Server, masterReceiver MasterReceiver) (*controlplane.Instance, *httptest.Server, CloseFunc) {
|
||||||
return startMasterOrDie(masterConfig, s, masterReceiver)
|
return startMasterOrDie(masterConfig, s, masterReceiver)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ func TestMasterExportsSymbols(t *testing.T) {
|
|||||||
EnableLogsSupport: false,
|
EnableLogsSupport: false,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
_ = &controlplane.Master{
|
_ = &controlplane.Instance{
|
||||||
GenericAPIServer: &genericapiserver.GenericAPIServer{},
|
GenericAPIServer: &genericapiserver.GenericAPIServer{},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user