@@ -881,11 +881,15 @@ func (c *Cluster) generatePodTemplate(
881881 addEmptyDirVolume (& podSpec , "exporter-tmp" , "postgres-exporter" , "/tmp" )
882882 }
883883
884- if c .OpConfig .ReadOnlyRootFilesystem != nil && * c .OpConfig .ReadOnlyRootFilesystem {
884+ if c .OpConfig .ReadOnlyRootFilesystem != nil && * c .OpConfig .ReadOnlyRootFilesystem && ! isRepoHost {
885885 addRunVolume (& podSpec , "postgres-run" , "postgres" , "/run" )
886886 addEmptyDirVolume (& podSpec , "postgres-tmp" , "postgres" , "/tmp" )
887887 }
888888
889+ if c .OpConfig .ReadOnlyRootFilesystem != nil && * c .OpConfig .ReadOnlyRootFilesystem && isRepoHost {
890+ addEmptyDirVolume (& podSpec , "pgbackrest-tmp" , "pgbackrest" , "/tmp" )
891+ }
892+
889893 if sharePgSocketWithSidecars != nil && * sharePgSocketWithSidecars {
890894 addVarRunVolume (& podSpec )
891895 }
@@ -1024,6 +1028,10 @@ func (c *Cluster) generateSpiloPodEnvVars(
10241028 envVars = append (envVars , v1.EnvVar {Name : "USE_PGBACKREST" , Value : "true" })
10251029 }
10261030
1031+ if c .OpConfig .ReadOnlyRootFilesystem != nil && * c .OpConfig .ReadOnlyRootFilesystem {
1032+ envVars = append (envVars , v1.EnvVar {Name : "HOME" , Value : "/home/postgres" })
1033+ }
1034+
10271035 if spec .TDE != nil && spec .TDE .Enable {
10281036 envVars = append (envVars , v1.EnvVar {Name : "TDE" , Value : "true" })
10291037 // envVars = append(envVars, v1.EnvVar{Name: "PGENCRKEYCMD", Value: "/tmp/tde.sh"})
@@ -2250,6 +2258,13 @@ func addEmptyDirVolume(podSpec *v1.PodSpec, volumeName string, containerName str
22502258 podSpec .Containers [i ].VolumeMounts = append (podSpec .Containers [i ].VolumeMounts , mount )
22512259 }
22522260 }
2261+ if vol .Name == "postgres-tmp" && len (podSpec .InitContainers ) > 0 {
2262+ for i := range podSpec .InitContainers {
2263+ if podSpec .InitContainers [i ].Name == "pgbackrest-restore" {
2264+ podSpec .InitContainers [i ].VolumeMounts = append (podSpec .InitContainers [i ].VolumeMounts , mount )
2265+ }
2266+ }
2267+ }
22532268}
22542269
22552270func addRunVolume (podSpec * v1.PodSpec , volumeName string , containerName string , path string ) {
0 commit comments