@@ -113,6 +113,7 @@ func buildADPodSpec(
113
113
podSpec .Volumes = getVolumes (volumes )
114
114
podSpec .InitContainers = []corev1.Container {
115
115
buildInitCtr (planner , podEnv , smbAllVols ),
116
+ buildEnsureShareCtr (planner , podEnv , smbAllVols ),
116
117
buildMustJoinCtr (planner , joinEnv , joinVols ),
117
118
}
118
119
podSpec .Containers = containers
@@ -125,6 +126,7 @@ func buildUserPodSpec(
125
126
pvcName string ) corev1.PodSpec {
126
127
// ---
127
128
vols := []volMount {}
129
+ initContainers := []corev1.Container {}
128
130
129
131
shareVol := shareVolumeAndMount (planner , pvcName )
130
132
vols = append (vols , shareVol )
@@ -135,17 +137,21 @@ func buildUserPodSpec(
135
137
configVol := configVolumeAndMount (planner )
136
138
vols = append (vols , configVol )
137
139
140
+ podEnv := defaultPodEnv (planner )
141
+ initContainers = append (initContainers ,
142
+ buildEnsureShareCtr (planner , podEnv , vols ))
143
+
138
144
osRunVol := osRunVolumeAndMount (planner )
139
145
vols = append (vols , osRunVol )
140
146
141
147
if planner .UserSecuritySource ().Configured {
142
148
v := userConfigVolumeAndMount (planner )
143
149
vols = append (vols , v )
144
150
}
145
- podEnv := defaultPodEnv (planner )
146
151
podSpec := defaultPodSpec (planner )
147
152
podSpec .Volumes = getVolumes (vols )
148
153
podSpec .Containers = buildSmbdCtrs (planner , podEnv , vols )
154
+ podSpec .InitContainers = initContainers
149
155
return podSpec
150
156
}
151
157
@@ -203,6 +209,14 @@ func buildClusteredUserPodSpec(
203
209
ctdbSharedVol , // needed to decide if real init or not
204
210
)))
205
211
212
+ initContainers = append (
213
+ initContainers ,
214
+ buildEnsureShareCtr (planner , podEnv , append (
215
+ podCfgVols ,
216
+ stateVol ,
217
+ shareVol ,
218
+ )))
219
+
206
220
initContainers = append (
207
221
initContainers ,
208
222
buildCTDBMigrateCtr (planner , ctdbEnv , append (
@@ -321,6 +335,14 @@ func buildClusteredADPodSpec(
321
335
ctdbSharedVol , // needed to decide if real init or not
322
336
)))
323
337
338
+ initContainers = append (
339
+ initContainers ,
340
+ buildEnsureShareCtr (planner , podEnv , append (
341
+ podCfgVols ,
342
+ stateVol ,
343
+ shareVol ,
344
+ )))
345
+
324
346
joinVols := append (
325
347
append (podCfgVols , stateVol , ctdbSharedVol ),
326
348
jsrc .volumes ... )
@@ -576,6 +598,20 @@ func buildInitCtr(
576
598
}
577
599
}
578
600
601
+ func buildEnsureShareCtr (
602
+ planner * pln.Planner ,
603
+ env []corev1.EnvVar ,
604
+ vols []volMount ) corev1.Container {
605
+ // ---
606
+ return corev1.Container {
607
+ Image : planner .GlobalConfig .SmbdContainerImage ,
608
+ Name : "ensure-share-paths" ,
609
+ Args : planner .Args ().EnsureSharePaths (),
610
+ Env : env ,
611
+ VolumeMounts : getMounts (vols ),
612
+ }
613
+ }
614
+
579
615
func buildMustJoinCtr (
580
616
planner * pln.Planner ,
581
617
env []corev1.EnvVar ,
0 commit comments