@@ -18,6 +18,7 @@ package vttablet
1818
1919import (
2020 "strconv"
21+ "strings"
2122 "time"
2223
2324 corev1 "k8s.io/api/core/v1"
@@ -134,6 +135,11 @@ func NewBackupPod(key client.ObjectKey, backupSpec *BackupSpec, mysqldImage stri
134135 update .ResourceRequirements (& containerResources , & tabletSpec .Mysqld .Resources )
135136
136137 vtbackupAllFlags := vtbackupFlags .Get (backupSpec )
138+ // Merge vtbackup-specific extra flags only.
139+ for key , value := range tabletSpec .Vttablet .VtbackupExtraFlags {
140+ key = strings .TrimLeft (key , "-" )
141+ vtbackupAllFlags [key ] = value
142+ }
137143 mysql .UpdateMySQLServerVersion (vtbackupAllFlags , mysqldImage )
138144 pod := & corev1.Pod {
139145 ObjectMeta : metav1.ObjectMeta {
@@ -184,6 +190,18 @@ func NewBackupPod(key client.ObjectKey, backupSpec *BackupSpec, mysqldImage stri
184190 },
185191 }
186192
193+ // Allow user-provided extra volumes and mounts to be applied last.
194+ update .Volumes (& pod .Spec .Volumes , tabletSpec .ExtraVolumes )
195+ update .VolumeMounts (& volumeMounts , tabletSpec .ExtraVolumeMounts )
196+
197+ // Apply the updated volume mounts to the vtbackup container
198+ for i := range pod .Spec .Containers {
199+ if pod .Spec .Containers [i ].Name == vtbackupContainerName {
200+ pod .Spec .Containers [i ].VolumeMounts = volumeMounts
201+ break
202+ }
203+ }
204+
187205 if planetscalev2 .DefaultVitessServiceAccount != "" {
188206 pod .Spec .ServiceAccountName = planetscalev2 .DefaultVitessServiceAccount
189207 }
0 commit comments