mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Add CSI Translation API for Storage Class parameters
Signed-off-by: Deep Debroy <ddebroy@docker.com>
This commit is contained in:
parent
91d2bd3951
commit
95b9929136
@ -40,6 +40,11 @@ func NewAWSElasticBlockStoreCSITranslator() InTreePlugin {
|
|||||||
return &awsElasticBlockStoreCSITranslator{}
|
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
|
// TranslateInTreePVToCSI takes a PV with AWSElasticBlockStore set from in-tree
|
||||||
// and converts the AWSElasticBlockStore source to a CSIPersistentVolumeSource
|
// and converts the AWSElasticBlockStore source to a CSIPersistentVolumeSource
|
||||||
func (t *awsElasticBlockStoreCSITranslator) TranslateInTreePVToCSI(pv *v1.PersistentVolume) (*v1.PersistentVolume, error) {
|
func (t *awsElasticBlockStoreCSITranslator) TranslateInTreePVToCSI(pv *v1.PersistentVolume) (*v1.PersistentVolume, error) {
|
||||||
|
@ -58,6 +58,11 @@ func NewGCEPersistentDiskCSITranslator() InTreePlugin {
|
|||||||
return &gcePersistentDiskCSITranslator{}
|
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
|
// TranslateInTreePVToCSI takes a PV with GCEPersistentDisk set from in-tree
|
||||||
// and converts the GCEPersistentDisk source to a CSIPersistentVolumeSource
|
// and converts the GCEPersistentDisk source to a CSIPersistentVolumeSource
|
||||||
func (g *gcePersistentDiskCSITranslator) TranslateInTreePVToCSI(pv *v1.PersistentVolume) (*v1.PersistentVolume, error) {
|
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
|
// InTreePlugin handles translations between CSI and in-tree sources in a PV
|
||||||
type InTreePlugin interface {
|
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
|
// TranslateInTreePVToCSI takes a persistent volume and will translate
|
||||||
// the in-tree source to a CSI Source. The input persistent volume can be modified
|
// the in-tree source to a CSI Source. The input persistent volume can be modified
|
||||||
TranslateInTreePVToCSI(pv *v1.PersistentVolume) (*v1.PersistentVolume, error)
|
TranslateInTreePVToCSI(pv *v1.PersistentVolume) (*v1.PersistentVolume, error)
|
||||||
|
@ -38,6 +38,11 @@ func NewOpenStackCinderCSITranslator() InTreePlugin {
|
|||||||
return &osCinderCSITranslator{}
|
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
|
// TranslateInTreePVToCSI takes a PV with Cinder set from in-tree
|
||||||
// and converts the Cinder source to a CSIPersistentVolumeSource
|
// and converts the Cinder source to a CSIPersistentVolumeSource
|
||||||
func (t *osCinderCSITranslator) TranslateInTreePVToCSI(pv *v1.PersistentVolume) (*v1.PersistentVolume, error) {
|
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
|
// TranslateInTreePVToCSI takes a persistent volume and will translate
|
||||||
// the in-tree source to a CSI Source if the translation logic
|
// the in-tree source to a CSI Source if the translation logic
|
||||||
// has been implemented. The input persistent volume will not
|
// has been implemented. The input persistent volume will not
|
||||||
|
Loading…
Reference in New Issue
Block a user