Skip to content

Commit 1d25f8d

Browse files
authored
Merge pull request #95 from cybertec-postgresql/SecurityContext
Security context
2 parents 863420a + b77d7dd commit 1d25f8d

File tree

3 files changed

+26
-5
lines changed

3 files changed

+26
-5
lines changed

pkg/cluster/k8sres.go

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

22552270
func addRunVolume(podSpec *v1.PodSpec, volumeName string, containerName string, path string) {

pkg/cluster/majorversionupgrade.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ func (c *Cluster) majorVersionUpgrade() error {
145145
return nil
146146
}
147147

148-
pods, err := c.listPods()
148+
pods, err := c.listPodsOfType(TYPE_POSTGRESQL)
149149
if err != nil {
150150
return err
151151
}
@@ -213,7 +213,13 @@ func (c *Cluster) majorVersionUpgrade() error {
213213
c.logger.Error("could not get members data from Patroni API, skipping major version upgrade")
214214
return err
215215
}
216-
patroniVer, err := semver.NewVersion(patroniData.Patroni.Version)
216+
patroniVersion := patroniData.Patroni.Version
217+
parts := strings.Split(patroniVersion, ".")
218+
if len(parts) > 3 {
219+
patroniVersion = strings.Join(parts[:3], ".")
220+
}
221+
patroniVer, err := semver.NewVersion(patroniVersion)
222+
217223
if err != nil {
218224
c.logger.Error("error parsing Patroni version")
219225
patroniVer, _ = semver.NewVersion("3.0.4")
@@ -237,7 +243,7 @@ func (c *Cluster) majorVersionUpgrade() error {
237243

238244
isUpgradeSuccess := true
239245
numberOfPods := len(pods)
240-
if allRunning && masterPod != nil {
246+
if allRunning {
241247
c.logger.Infof("healthy cluster ready to upgrade, current: %d desired: %d", c.currentMajorVersion, desiredVersion)
242248
if c.currentMajorVersion < desiredVersion {
243249
defer func() error {

pkg/util/config/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ type Config struct {
262262
MajorVersionUpgradeMode string `name:"major_version_upgrade_mode" default:"off"`
263263
MajorVersionUpgradeTeamAllowList []string `name:"major_version_upgrade_team_allow_list" default:""`
264264
MinimalMajorVersion string `name:"minimal_major_version" default:"13"`
265-
TargetMajorVersion string `name:"target_major_version" default:"17"`
265+
TargetMajorVersion string `name:"target_major_version" default:"18"`
266266
PatroniAPICheckInterval time.Duration `name:"patroni_api_check_interval" default:"1s"`
267267
PatroniAPICheckTimeout time.Duration `name:"patroni_api_check_timeout" default:"5s"`
268268
EnablePatroniFailsafeMode *bool `name:"enable_patroni_failsafe_mode" default:"false"`

0 commit comments

Comments
 (0)