mirror of
https://github.com/optim-enterprises-bv/kubernetes.git
synced 2025-12-08 00:55:37 +00:00
Merge pull request #124544 from carlory/remove-cephfs
remove the support for in-tree volume plugin cephfs
This commit is contained in:
@@ -359,162 +359,10 @@ func newISCSIServer(ctx context.Context, cs clientset.Interface, namespace strin
|
||||
return config, pod, ip, iqn
|
||||
}
|
||||
|
||||
// newRBDServer is a CephRBD-specific wrapper for CreateStorageServer.
|
||||
func newRBDServer(ctx context.Context, cs clientset.Interface, namespace string) (config e2evolume.TestConfig, pod *v1.Pod, secret *v1.Secret, ip string) {
|
||||
config = e2evolume.TestConfig{
|
||||
Namespace: namespace,
|
||||
Prefix: "rbd",
|
||||
ServerImage: imageutils.GetE2EImage(imageutils.VolumeRBDServer),
|
||||
ServerPorts: []int{6789},
|
||||
ServerVolumes: map[string]string{
|
||||
"/lib/modules": "/lib/modules",
|
||||
},
|
||||
ServerReadyMessage: "Ceph is ready",
|
||||
}
|
||||
pod, ip = e2evolume.CreateStorageServer(ctx, cs, config)
|
||||
// create secrets for the server
|
||||
secret = &v1.Secret{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
Kind: "Secret",
|
||||
APIVersion: "v1",
|
||||
},
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: config.Prefix + "-secret",
|
||||
},
|
||||
Data: map[string][]byte{
|
||||
// from test/images/volumes-tester/rbd/keyring
|
||||
"key": []byte("AQDRrKNVbEevChAAEmRC+pW/KBVHxa0w/POILA=="),
|
||||
},
|
||||
Type: "kubernetes.io/rbd",
|
||||
}
|
||||
|
||||
secret, err := cs.CoreV1().Secrets(config.Namespace).Create(ctx, secret, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
framework.Failf("Failed to create secrets for Ceph RBD: %v", err)
|
||||
}
|
||||
|
||||
return config, pod, secret, ip
|
||||
}
|
||||
|
||||
func (v *iSCSIVolume) DeleteVolume(ctx context.Context) {
|
||||
cleanUpVolumeServer(ctx, v.f, v.serverPod)
|
||||
}
|
||||
|
||||
// Ceph
|
||||
type cephFSDriver struct {
|
||||
driverInfo storageframework.DriverInfo
|
||||
}
|
||||
|
||||
type cephVolume struct {
|
||||
serverPod *v1.Pod
|
||||
serverIP string
|
||||
secret *v1.Secret
|
||||
f *framework.Framework
|
||||
}
|
||||
|
||||
var _ storageframework.TestDriver = &cephFSDriver{}
|
||||
var _ storageframework.PreprovisionedVolumeTestDriver = &cephFSDriver{}
|
||||
var _ storageframework.InlineVolumeTestDriver = &cephFSDriver{}
|
||||
var _ storageframework.PreprovisionedPVTestDriver = &cephFSDriver{}
|
||||
|
||||
// InitCephFSDriver returns cephFSDriver that implements TestDriver interface
|
||||
func InitCephFSDriver() storageframework.TestDriver {
|
||||
return &cephFSDriver{
|
||||
driverInfo: storageframework.DriverInfo{
|
||||
Name: "ceph",
|
||||
InTreePluginName: "kubernetes.io/cephfs",
|
||||
TestTags: []interface{}{feature.Volumes, framework.WithSerial()},
|
||||
MaxFileSize: storageframework.FileSizeMedium,
|
||||
SupportedSizeRange: e2evolume.SizeRange{
|
||||
Min: "1Gi",
|
||||
},
|
||||
SupportedFsType: sets.NewString(
|
||||
"", // Default fsType
|
||||
),
|
||||
Capabilities: map[storageframework.Capability]bool{
|
||||
storageframework.CapPersistence: true,
|
||||
storageframework.CapExec: true,
|
||||
storageframework.CapRWX: true,
|
||||
storageframework.CapMultiPODs: true,
|
||||
storageframework.CapMultiplePVsSameID: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func (c *cephFSDriver) GetDriverInfo() *storageframework.DriverInfo {
|
||||
return &c.driverInfo
|
||||
}
|
||||
|
||||
func (c *cephFSDriver) SkipUnsupportedTest(pattern storageframework.TestPattern) {
|
||||
}
|
||||
|
||||
func (c *cephFSDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume storageframework.TestVolume) *v1.VolumeSource {
|
||||
cv, ok := e2evolume.(*cephVolume)
|
||||
if !ok {
|
||||
framework.Failf("Failed to cast test volume of type %T to the Ceph test volume", e2evolume)
|
||||
}
|
||||
|
||||
return &v1.VolumeSource{
|
||||
CephFS: &v1.CephFSVolumeSource{
|
||||
Monitors: []string{cv.serverIP + ":6789"},
|
||||
User: "kube",
|
||||
SecretRef: &v1.LocalObjectReference{
|
||||
Name: cv.secret.Name,
|
||||
},
|
||||
ReadOnly: readOnly,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func (c *cephFSDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume storageframework.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
|
||||
cv, ok := e2evolume.(*cephVolume)
|
||||
if !ok {
|
||||
framework.Failf("Failed to cast test volume of type %T to the Ceph test volume", e2evolume)
|
||||
}
|
||||
|
||||
ns := cv.f.Namespace
|
||||
|
||||
return &v1.PersistentVolumeSource{
|
||||
CephFS: &v1.CephFSPersistentVolumeSource{
|
||||
Monitors: []string{cv.serverIP + ":6789"},
|
||||
User: "kube",
|
||||
SecretRef: &v1.SecretReference{
|
||||
Name: cv.secret.Name,
|
||||
Namespace: ns.Name,
|
||||
},
|
||||
ReadOnly: readOnly,
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (c *cephFSDriver) PrepareTest(ctx context.Context, f *framework.Framework) *storageframework.PerTestConfig {
|
||||
return &storageframework.PerTestConfig{
|
||||
Driver: c,
|
||||
Prefix: "cephfs",
|
||||
Framework: f,
|
||||
}
|
||||
}
|
||||
|
||||
func (c *cephFSDriver) CreateVolume(ctx context.Context, config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume {
|
||||
f := config.Framework
|
||||
cs := f.ClientSet
|
||||
ns := f.Namespace
|
||||
|
||||
cfg, serverPod, secret, serverIP := newRBDServer(ctx, cs, ns.Name)
|
||||
config.ServerConfig = &cfg
|
||||
return &cephVolume{
|
||||
serverPod: serverPod,
|
||||
serverIP: serverIP,
|
||||
secret: secret,
|
||||
f: f,
|
||||
}
|
||||
}
|
||||
|
||||
func (v *cephVolume) DeleteVolume(ctx context.Context) {
|
||||
cleanUpVolumeServerWithSecret(ctx, v.f, v.serverPod, v.secret)
|
||||
}
|
||||
|
||||
// Hostpath
|
||||
type hostPathDriver struct {
|
||||
driverInfo storageframework.DriverInfo
|
||||
|
||||
@@ -30,7 +30,6 @@ import (
|
||||
var testDrivers = []func() storageframework.TestDriver{
|
||||
drivers.InitNFSDriver,
|
||||
drivers.InitISCSIDriver,
|
||||
drivers.InitCephFSDriver,
|
||||
drivers.InitHostPathDriver,
|
||||
drivers.InitHostPathSymlinkDriver,
|
||||
drivers.InitEmptydirDriver,
|
||||
|
||||
@@ -222,8 +222,6 @@ const (
|
||||
VolumeNFSServer
|
||||
// VolumeISCSIServer image
|
||||
VolumeISCSIServer
|
||||
// VolumeRBDServer image
|
||||
VolumeRBDServer
|
||||
)
|
||||
|
||||
func initImageConfigs(list RegistryList) (map[ImageID]Config, map[ImageID]Config) {
|
||||
@@ -265,7 +263,6 @@ func initImageConfigs(list RegistryList) (map[ImageID]Config, map[ImageID]Config
|
||||
configs[SdDummyExporter] = Config{list.GcRegistry, "sd-dummy-exporter", "v0.2.0"}
|
||||
configs[VolumeNFSServer] = Config{list.PromoterE2eRegistry, "volume/nfs", "1.4"}
|
||||
configs[VolumeISCSIServer] = Config{list.PromoterE2eRegistry, "volume/iscsi", "2.6"}
|
||||
configs[VolumeRBDServer] = Config{list.PromoterE2eRegistry, "volume/rbd", "1.0.6"}
|
||||
|
||||
// This adds more config entries. Those have no pre-defined ImageID number,
|
||||
// but will be used via ReplaceRegistryInImageURL when deploying
|
||||
|
||||
Reference in New Issue
Block a user