mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-04 15:05:20 +00:00
kube-apiserver options should be decoupled from impls
A few months ago we refactored options to keep it independent of the implementations, so that it could be used in CLI tools to validate config or to generate config, without pulling in the full dependency tree of the master. This change restores that by separating server_run_options.go back to its own package. Also, options structs should never contain non-serializable types, which storagebackend.Config was doing with runtime.Codec. Split the codec out. Fix a typo on the name of the etcd2.go storage backend. Finally, move DefaultStorageMediaType to server_run_options.
This commit is contained in:
@@ -16,13 +16,6 @@ limitations under the License.
|
||||
|
||||
package storagebackend
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/storage"
|
||||
)
|
||||
|
||||
const (
|
||||
StorageTypeUnset = ""
|
||||
StorageTypeETCD2 = "etcd2"
|
||||
@@ -33,8 +26,6 @@ const (
|
||||
type Config struct {
|
||||
// Type defines the type of storage backend, e.g. "etcd2", etcd3". Default ("") is "etcd2".
|
||||
Type string
|
||||
// Codec is used to serialize/deserialize objects.
|
||||
Codec runtime.Codec
|
||||
// Prefix is the prefix to all keys passed to storage.Interface methods.
|
||||
Prefix string
|
||||
// ServerList is the list of storage servers to connect with.
|
||||
@@ -50,19 +41,3 @@ type Config struct {
|
||||
// We will drop the cache once using protobuf.
|
||||
DeserializationCacheSize int
|
||||
}
|
||||
|
||||
// Create creates a storage backend based on given config.
|
||||
func Create(c Config) (storage.Interface, error) {
|
||||
switch c.Type {
|
||||
case StorageTypeUnset, StorageTypeETCD2:
|
||||
return newETCD2Storage(c)
|
||||
case StorageTypeETCD3:
|
||||
// TODO: We have the following features to implement:
|
||||
// - Support secure connection by using key, cert, and CA files.
|
||||
// - Honor "https" scheme to support secure connection in gRPC.
|
||||
// - Support non-quorum read.
|
||||
return newETCD3Storage(c)
|
||||
default:
|
||||
return nil, fmt.Errorf("unknown storage type: %s", c.Type)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user