52
52
)
53
53
54
54
const (
55
- SupervisorPath = "./supervisor"
56
- NodeSelectorKey = "kubernetes.io/hostname"
55
+ SupervisorPath = "./supervisor"
56
+ NodeSelectorKey = "kubernetes.io/hostname"
57
+ MinIOCredentialsPath = "/var/run/secrets/providers/minio.default"
58
+ MinIOSecretVolumeName = "minio-user"
57
59
58
60
// Annotations for InterLink nodes
59
61
InterLinkDNSPolicy = "ClusterFirst"
@@ -141,10 +143,11 @@ func MakeJobHandler(cfg *types.Config, kubeClientset kubernetes.Interface, back
141
143
}
142
144
143
145
// Check if it has the MinIO event format
144
- uid , sourceIPAddress , err := decodeEventBytes (eventBytes )
146
+ requestUserUID , sourceIPAddress , err := decodeEventBytes (eventBytes )
145
147
if err != nil {
146
148
// Check if the request was made with OIDC token to get user UID
147
149
if uidFromToken != "" {
150
+ requestUserUID = uidFromToken
148
151
c .Set ("uidOrigin" , uidFromToken )
149
152
} else {
150
153
// Set as nil string if unable to get an UID
@@ -153,11 +156,27 @@ func MakeJobHandler(cfg *types.Config, kubeClientset kubernetes.Interface, back
153
156
}
154
157
} else {
155
158
c .Set ("IPAddress" , sourceIPAddress )
156
- c .Set ("uidOrigin" , uid )
159
+ c .Set ("uidOrigin" , requestUserUID )
157
160
}
158
161
159
162
c .Next ()
160
163
164
+ // Mount user MinIO credentials
165
+ podSpec .Volumes = append (podSpec .Volumes , v1.Volume {
166
+ Name : MinIOSecretVolumeName ,
167
+ VolumeSource : v1.VolumeSource {
168
+ Secret : & v1.SecretVolumeSource {
169
+ SecretName : auth .FormatUID (requestUserUID ),
170
+ },
171
+ },
172
+ })
173
+
174
+ podSpec .Containers [0 ].VolumeMounts = append (podSpec .Containers [0 ].VolumeMounts , v1.VolumeMount {
175
+ Name : MinIOSecretVolumeName ,
176
+ ReadOnly : true ,
177
+ MountPath : MinIOCredentialsPath ,
178
+ })
179
+
161
180
// Initialize event envVar and args var
162
181
var event v1.EnvVar
163
182
var args []string
@@ -227,20 +246,7 @@ func MakeJobHandler(cfg *types.Config, kubeClientset kubernetes.Interface, back
227
246
jobLogger .Printf ("unable to delegate job. Error: %v\n " , err )
228
247
}
229
248
}
230
- podSpec .Volumes = append (podSpec .Volumes , v1.Volume {
231
- Name : "minio-user-credentials" ,
232
- VolumeSource : v1.VolumeSource {
233
- Secret : & v1.SecretVolumeSource {
234
- SecretName : auth .FormatUID (uid ),
235
- },
236
- },
237
- })
238
249
239
- podSpec .Containers [0 ].VolumeMounts = append (podSpec .Containers [0 ].VolumeMounts , v1.VolumeMount {
240
- Name : "minio-user-credentials" ,
241
- ReadOnly : true ,
242
- MountPath : "/opt/.credentials" ,
243
- })
244
250
// Create job definition
245
251
job := & batchv1.Job {
246
252
ObjectMeta : metav1.ObjectMeta {
0 commit comments