@@ -67,6 +67,22 @@ func (d OCIFlexvolumeDriver) Init() flexvolume.DriverStatus {
67
67
return flexvolume .Succeed ()
68
68
}
69
69
70
+ // deriveVolumeOCID will figure out the correct OCID for a volume
71
+ // based solely on the region key and volumeName. Because of differences
72
+ // across regions we need to impose some awkward logic here to get the correct
73
+ // OCID
74
+ func deriveVolumeOCID (regionKey string , volumeName string ) string {
75
+ var volumeOCID string
76
+
77
+ if regionKey == "fra" {
78
+ volumeOCID = fmt .Sprintf (volumeOCIDTemplate , "eu-frankfurt-1" , volumeName )
79
+ } else {
80
+ volumeOCID = fmt .Sprintf (volumeOCIDTemplate , regionKey , volumeName )
81
+ }
82
+
83
+ return volumeOCID
84
+ }
85
+
70
86
// Attach initiates the attachment of the given OCI volume to the k8s worker
71
87
// node.
72
88
func (d OCIFlexvolumeDriver ) Attach (opts flexvolume.Options , nodeName string ) flexvolume.DriverStatus {
@@ -80,7 +96,7 @@ func (d OCIFlexvolumeDriver) Attach(opts flexvolume.Options, nodeName string) fl
80
96
return flexvolume .Fail (err )
81
97
}
82
98
83
- volumeOCID := fmt . Sprintf ( volumeOCIDTemplate , c .GetConfig ().Auth .RegionKey , opts ["kubernetes.io/pvOrVolumeName" ])
99
+ volumeOCID := deriveVolumeOCID ( c .GetConfig ().Auth .RegionKey , opts ["kubernetes.io/pvOrVolumeName" ])
84
100
85
101
log .Printf ("Attaching volume %s -> instance %s" , volumeOCID , instance .ID )
86
102
@@ -122,7 +138,7 @@ func (d OCIFlexvolumeDriver) Detach(pvOrVolumeName, nodeName string) flexvolume.
122
138
return flexvolume .Fail (err )
123
139
}
124
140
125
- volumeOCID := fmt . Sprintf ( volumeOCIDTemplate , c .GetConfig ().Auth .RegionKey , pvOrVolumeName )
141
+ volumeOCID := deriveVolumeOCID ( c .GetConfig ().Auth .RegionKey , pvOrVolumeName )
126
142
attachment , err := c .FindVolumeAttachment (volumeOCID )
127
143
if err != nil {
128
144
return flexvolume .Fail (err )
@@ -155,7 +171,7 @@ func (d OCIFlexvolumeDriver) IsAttached(opts flexvolume.Options, nodeName string
155
171
return flexvolume .Fail (err )
156
172
}
157
173
158
- volumeOCID := fmt . Sprintf ( volumeOCIDTemplate , c .GetConfig ().Auth .RegionKey , opts ["kubernetes.io/pvOrVolumeName" ])
174
+ volumeOCID := deriveVolumeOCID ( c .GetConfig ().Auth .RegionKey , opts ["kubernetes.io/pvOrVolumeName" ])
159
175
attachment , err := c .FindVolumeAttachment (volumeOCID )
160
176
if err != nil {
161
177
return flexvolume.DriverStatus {
0 commit comments