mirror of https://github.com/k3s-io/k3s
Merge pull request #73734 from ddebroy/csimigprov3
Add CSI Translation API for Storage Class parameterspull/564/head
commit
be023698df
|
@ -40,6 +40,11 @@ func NewAWSElasticBlockStoreCSITranslator() InTreePlugin {
|
|||
return &awsElasticBlockStoreCSITranslator{}
|
||||
}
|
||||
|
||||
// TranslateInTreeStorageClassParametersToCSI translates InTree EBS storage class parameters to CSI storage class
|
||||
func (t *awsElasticBlockStoreCSITranslator) TranslateInTreeStorageClassParametersToCSI(scParameters map[string]string) (map[string]string, error) {
|
||||
return scParameters, nil
|
||||
}
|
||||
|
||||
// TranslateInTreePVToCSI takes a PV with AWSElasticBlockStore set from in-tree
|
||||
// and converts the AWSElasticBlockStore source to a CSIPersistentVolumeSource
|
||||
func (t *awsElasticBlockStoreCSITranslator) TranslateInTreePVToCSI(pv *v1.PersistentVolume) (*v1.PersistentVolume, error) {
|
||||
|
|
|
@ -58,6 +58,11 @@ func NewGCEPersistentDiskCSITranslator() InTreePlugin {
|
|||
return &gcePersistentDiskCSITranslator{}
|
||||
}
|
||||
|
||||
// TranslateInTreeStorageClassParametersToCSI translates InTree GCE storage class parameters to CSI storage class
|
||||
func (g *gcePersistentDiskCSITranslator) TranslateInTreeStorageClassParametersToCSI(scParameters map[string]string) (map[string]string, error) {
|
||||
return scParameters, nil
|
||||
}
|
||||
|
||||
// TranslateInTreePVToCSI takes a PV with GCEPersistentDisk set from in-tree
|
||||
// and converts the GCEPersistentDisk source to a CSIPersistentVolumeSource
|
||||
func (g *gcePersistentDiskCSITranslator) TranslateInTreePVToCSI(pv *v1.PersistentVolume) (*v1.PersistentVolume, error) {
|
||||
|
|
|
@ -20,6 +20,11 @@ import "k8s.io/api/core/v1"
|
|||
|
||||
// InTreePlugin handles translations between CSI and in-tree sources in a PV
|
||||
type InTreePlugin interface {
|
||||
|
||||
// TranslateInTreeStorageClassParametersToCSI takes in-tree storage class
|
||||
// parameters and translates them to a set of parameters consumable by CSI plugin
|
||||
TranslateInTreeStorageClassParametersToCSI(scParameters map[string]string) (map[string]string, error)
|
||||
|
||||
// TranslateInTreePVToCSI takes a persistent volume and will translate
|
||||
// the in-tree source to a CSI Source. The input persistent volume can be modified
|
||||
TranslateInTreePVToCSI(pv *v1.PersistentVolume) (*v1.PersistentVolume, error)
|
||||
|
|
|
@ -38,6 +38,11 @@ func NewOpenStackCinderCSITranslator() InTreePlugin {
|
|||
return &osCinderCSITranslator{}
|
||||
}
|
||||
|
||||
// TranslateInTreeStorageClassParametersToCSI translates InTree Cinder storage class parameters to CSI storage class
|
||||
func (t *osCinderCSITranslator) TranslateInTreeStorageClassParametersToCSI(scParameters map[string]string) (map[string]string, error) {
|
||||
return scParameters, nil
|
||||
}
|
||||
|
||||
// TranslateInTreePVToCSI takes a PV with Cinder set from in-tree
|
||||
// and converts the Cinder source to a CSIPersistentVolumeSource
|
||||
func (t *osCinderCSITranslator) TranslateInTreePVToCSI(pv *v1.PersistentVolume) (*v1.PersistentVolume, error) {
|
||||
|
|
|
@ -31,6 +31,17 @@ var (
|
|||
}
|
||||
)
|
||||
|
||||
// TranslateInTreeStorageClassParametersToCSI takes in-tree storage class
|
||||
// parameters and translates them to a set of parameters consumable by CSI plugin
|
||||
func TranslateInTreeStorageClassParametersToCSI(inTreePluginName string, scParameters map[string]string) (map[string]string, error) {
|
||||
for _, curPlugin := range inTreePlugins {
|
||||
if inTreePluginName == curPlugin.GetInTreePluginName() {
|
||||
return curPlugin.TranslateInTreeStorageClassParametersToCSI(scParameters)
|
||||
}
|
||||
}
|
||||
return nil, fmt.Errorf("could not find in-tree storage class parameter translation logic for %#v", inTreePluginName)
|
||||
}
|
||||
|
||||
// TranslateInTreePVToCSI takes a persistent volume and will translate
|
||||
// the in-tree source to a CSI Source if the translation logic
|
||||
// has been implemented. The input persistent volume will not
|
||||
|
|
Loading…
Reference in New Issue